2

案子

我已将音频文件下载到名为 /tracks/ 的文件夹下的文档目录中:

RNFetchBlob.fs.dirs.DocumentDir + '/tracks/'

毫无疑问,我可以通过他们的名字来阅读每个音频:

RNFetchBlob.fs.dirs.DocumentDir + '/tracks/' + 'audio1.mp3'

问题: 我想获取所有音频的列表。我可以在 File Access API 中看到,我们可以读取文件,但我无法找到如何从文件夹“/tracks/”中获取音频文件列表。

我只想在该目录中有一组文件名。

文件访问 API 链接: https ://github.com/wkh237/react-native-fetch-blob/wiki/File-System-Access-API#dirs

PS:我不想去其他文件访问插件。我不知道我是否必须在其他库中搜索文件列表。

更新

使用以下代码:

var TRACK_FOLDER = RNFetchBlob.fs.dirs.DocumentDir + '/tracks/';

console.log('Files LIST in Tracks Folder = ', RNFetchBlob.fs.ls(TRACK_FOLDER));

输出是:

谷歌控制台截图

我想我已经接近了,但输出似乎很难解析。:(

最后:(这就是它的完成方式)

    var TRACK_FOLDER = RNFetchBlob.fs.dirs.DocumentDir + '/tracks/';

    console.log('Files list in TRACK_FOLDER = ', RNFetchBlob.fs.ls(TRACK_FOLDER));

     RNFetchBlob.fs.ls(TRACK_FOLDER)
    .then( (files) =>{ 
        console.log(files.length);  
        console.log(files); 
        console.log(files[0]); 

    })

输出: 最终输出

希望这可以帮助那里的人。

4

2 回答 2

6

RNFetchBlob.fs.ls返回一个承诺。

所以你可以使用访问它.then/.catch

RNFetchBlob.fs.ls(TRACK_FOLDER).then(files => {
  console.log(files);
}).catch(error => console.log(error))

或者你可以使用async/await

try {
  let files = await RNFetchBlob.fs.ls(TRACK_FOLDER);
  console.log(files);
} catch (error) {
  console.log(error);
}

RNFetchBlob.fs.ls 您可以在此处阅读更多信息。另请注意,RNFetchBlob 的存储库已移至此处https://github.com/joltup/rn-fetch-blob

于 2019-02-18T09:44:11.907 回答
1

我使用了 lstat 它返回所有文件,包括以下内容:

{
filename: "RNPM_2238640396305543067.png"
lastModified: "1632219571000"
path: "/data/user/0/com.test.app/cache/RNPM_2238640396305543067.png"
size: "21059"
type: "file"
}
于 2021-09-21T10:26:36.943 回答