如何在 React Native 中获取文件夹大小和长度
How to get folder size and lenght in react native
如何获取文件夹大小和文件夹中的文件数量?我尝试使用 react-native-fs readDir.
let pat2 = RNFS.DocumentDirectoryPath + '/myFolder'
RNFS.readDir(pat2)
.then((result) => {
console.log(result.size)
})
.catch((err) => {
console.log(err.message, err.code);
});
不知道你是否还需要这个答案。但是 readDir returns 一个 ReadDirItem 的数组,代表文件夹中的一个项目。
然后您可以简单地遍历项目并添加项目的大小。
文件夹中的项目数正好是数组的长度。
为了求和,我使用了 lodash 的 reduce 函数 (_.reduce()),但您也可以使用简单的 for 循环。
await RNFS.readDir(FOLDER_PATH).then((result: ReadDirItem[]) => {
// number of files in a folder
const numOfItems: number = result.length;
// calculate sum of dirItem sizes
const folderEntriesSizeInBytes: number = _.reduce(
result,
(sum: number, currentItem: ReadDirItem) => {
return sum + Number(currentItem.size);
},
0
);
const megaBytes = String(folderEntriesSizeInBytes / 1000000);
});
}
如何获取文件夹大小和文件夹中的文件数量?我尝试使用 react-native-fs readDir.
let pat2 = RNFS.DocumentDirectoryPath + '/myFolder'
RNFS.readDir(pat2)
.then((result) => {
console.log(result.size)
})
.catch((err) => {
console.log(err.message, err.code);
});
不知道你是否还需要这个答案。但是 readDir returns 一个 ReadDirItem 的数组,代表文件夹中的一个项目。 然后您可以简单地遍历项目并添加项目的大小。 文件夹中的项目数正好是数组的长度。
为了求和,我使用了 lodash 的 reduce 函数 (_.reduce()),但您也可以使用简单的 for 循环。
await RNFS.readDir(FOLDER_PATH).then((result: ReadDirItem[]) => {
// number of files in a folder
const numOfItems: number = result.length;
// calculate sum of dirItem sizes
const folderEntriesSizeInBytes: number = _.reduce(
result,
(sum: number, currentItem: ReadDirItem) => {
return sum + Number(currentItem.size);
},
0
);
const megaBytes = String(folderEntriesSizeInBytes / 1000000);
});
}