gpt4 book ai didi

react-native - react native 文件系统以递归方式读取目录以获取子文件夹和其中的项目

转载 作者:行者123 更新时间:2023-12-04 15:51:30 28 4
gpt4 key购买 nike

我可以使用以下函数读取目录中的文件

    const path = RNFS.DocumentDirectoryPath;

RNFS.readDir(path)
.then((result) => {
console.warn(result);
const Files = [];

if(result != undefined && result.length > 0){

for(index in result) {
const item = result[index];
console.log(item);

if(item.isFile()){

Files.push(item);
}
}

if(Files.length > 0) {

callback(Files);
}
else{

callback(null);
}
}
else{
callback(null);
}
})
.catch(err => {

console.log('err in reading files');
console.log(err);
callback(null);
})

但是我想读取目录及其子目录和属于它们的文件,有什么办法可以实现吗?

最佳答案

我已经实现了从 Assets 中的内容递归复制到文档目录中的内容,如下所示:

import FileSystem from "react-native-fs";

async copyRecursive(source, destination) {
console.log(`${source} => ${destination}`);
const items = await FileSystem.readDirAssets(source);

console.log(`mkdir ${destination}/`);
await FileSystem.mkdir(destination);

await items.forEach(async item => {
if (item.isFile()) {
console.log(`f ${item.path}`);

const destPath =
FileSystem.DocumentDirectoryPath + "/" + source + "/" + item.name;

console.log(`cp ${item.path} ${destPath}`);
await FileSystem.copyFileAssets(item.path, destPath);
} else {
console.log(`d ${item.path}/`);

// Restart with expanded path
const subDirectory = source + "/" + item.name;
const subDestination = destination + "/" + item.name;
await this.copyRecursive(subDirectory, subDestination);
}
});

this.setState({
androidReady: true
});
}

关于react-native - react native 文件系统以递归方式读取目录以获取子文件夹和其中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53592738/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com