You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo FileSystem.getInfoAsync返回文件修改时间异常咨询

Expo FileSystem.getInfoAsync 返回相同 modificationTime 的问题解决

核心问题

你的getDirFileInformation函数循环逻辑存在错误:循环中始终调用list[0]获取文件信息,而非当前循环索引i对应的list[i]。这会导致每次请求的都是同一个文件的信息,自然所有文件的modificationTime输出完全一致。

修正方案

  1. 修复循环中的文件索引错误,将list[0]改为list[i]
  2. 规范async/await写法,避免await与.then混用
  3. 修正getInfoAsync中未使用合并后参数的问题

修正后的代码:

1. 修复getInfoAsync函数
export async function getInfoAsync(fileUri: string, options?: {}) {
    const opts: AllFileOptions = {
        size: true,
        ...options
    };
    return await FileSystem.getInfoAsync(fileUri, opts); // 使用合并后的opts参数
}
2. 修复getDirFileInformation函数
export async function getDirFileInformation(path: string, list: string[]) {
    const dirInfoList = new Set<FileSystem.FileInfo>();
    for (let i = 0; i < list.length; i++) {
        try {
            // 改用list[i]获取当前循环的文件
            const rsp = await getInfoAsync(`${path}/${list[i]}`);
            if (rsp.exists) {
                dirInfoList.add(rsp);
            }
        } catch (err) {
            throw new Error(`getDirFileInformation: ${err}`);
        }
    }
    return dirInfoList;
}

后续验证

修正后重新运行代码,控制台会输出每个日志文件的真实修改时间,你就可以基于modificationTime排序,找到最旧的文件执行删除逻辑。

内容的提问来源于stack exchange,提问作者JDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 19:15:38