检查React Native中的可用磁盘空间

时间:2017-01-23 04:24:04

标签: android ios react-native diskspace

我已经实现了以下代码:

  1. 使用RNFS.downloadFile()
  2. 下载zip文件
  3. 使用ZipArchive.unzip()
  4. 解压缩文件
  5. 使用RNFS.unlink()
  6. 删除zip文件

    我可以从服务器发送信息,说明zip文件的大小以及解压缩目录的大小。但是,如何检测设备上是否有足够的空间来下载和解压缩文件?我假设一旦我想到这一点,我就可以做这样的检查:

    if (free_space_on_device > zip_size + unpacked_size){
       proceed with steps 1 through 3 (listed above)
    }
    

2 个答案:

答案 0 :(得分:2)

我没有意识到RNFS有一个名为getFSInfo的函数。有了这些知识,我可以发出以下命令:

RNFS.getFSInfo()
.then ((info) => {
   console.log("Free Space is" + info.freeSpace + "Bytes")
   console.log("Free Space is" + info.freeSpace / 1024 + "KB")
})

答案 1 :(得分:0)

如果您使用的是react-native-fetch-blob而不是react-native-fs,那么这就是您要寻找的功能:

RNFetchBlob.fs.df().then( response => {
  console.log('Free space in bytes: ' + response.free);
  console.log('Total space in bytes: ' + response.total);
} );

在Android上,响应对象如下所示:

RNFetchBlob.fs.df().then( response => {
  console.log('External free space in bytes: ' + response.external_free);
  console.log('External total space in bytes: ' + response.external_total);
  console.log('Internal free space in bytes: ' + response.internal_free);
  console.log('Internal total space in bytes: ' + response.internal_total);
} );