如何在 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);
    });
  }