我正在使用 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
我已经通读了文档好几次了,但我已经没有想法了。
我尝试寻找替代方法来通过文件进行动态递归搜索,但还没有找到任何有用的东西。我已经记录了该函数的所有结果,当我运行该函数时,文件按预期返回,只是抛出错误的目录。
我现在遇到了同样的问题,到目前为止还不知道出了什么问题。我只是想删除我之前创建的一些文件夹
到目前为止我尝试的是设置权限,但这对我的情况没有帮助:
"expo": {
"android": {
"permissions": ["READ_EXTERNAL_STORAGE", "WRITE_EXTERNAL_STORAGE"],
}
}