getInfoAsync 未按预期工作 - expo 文件系统

问题描述 投票:0回答:1

我正在使用 expo v51 react-native、expo-file-system 包。所以,我想从给定目录中递归地获取文件信息,获取其中文件的所有路径并返回:

const getContentsOfFolder = async (source: string): Promise<MusicFile[]> => {
  const musicList: MusicFile[] = [];
  const files =
    await FileSystem.StorageAccessFramework.readDirectoryAsync(source);
  for (const fileUri of files) {
    const musicFileInfo = await FileSystem.getInfoAsync(fileUri);
    console.log(musicFileInfo);
    if (musicFileInfo.isDirectory) {
      const dirList = await getContentsOfFolder(musicFileInfo.uri);
      console.log("Aqui está a dirList: " + dirList);
      musicList.concat(dirList);
      continue;
    }
    musicList.push({
      uri: musicFileInfo.uri,
      title: musicFileInfo.uri,
    });
  }
  console.log(musicList);
  return musicList;
};

但是当我运行此函数时,FileSystem.getInfoAsync 在所有文件上运行,但是当它到达目录时,它会抛出此错误:

Possible unhandled promise rejection (id: 0):
Error: Call to function 'ExponentFileSystem.getInfoAsync' has been rejected.
-> Caused by java.io.IOException: Function not implemented

我已经通读了文档好几次了,但我已经没有想法了。

我尝试寻找替代方法来通过文件进行动态递归搜索,但还没有找到任何有用的东西。我已经记录了该函数的所有结果,当我运行该函数时,文件按预期返回,只是抛出错误的目录。

react-native file recursion mobile expo
1个回答
0
投票

我现在遇到了同样的问题,到目前为止还不知道出了什么问题。我只是想删除我之前创建的一些文件夹

到目前为止我尝试的是设置权限,但这对我的情况没有帮助:

"expo": {
    "android": {
        "permissions": ["READ_EXTERNAL_STORAGE", "WRITE_EXTERNAL_STORAGE"],
    }
 }
© www.soinside.com 2019 - 2024. All rights reserved.