鸿蒙5.0进阶开发:应用文件-应用及文件系统空间统计

 往期鸿蒙5.0全套实战文章必看:(文中附带鸿蒙5.0全栈学习资料)


应用及文件系统空间统计

在系统中,可能出现系统空间不够或者cacheDir等目录受系统配额限制等情况,需要应用开发者关注系统剩余空间,同时控制应用自身占用的空间大小。

接口说明

API的详细介绍请参见ohos.file.statvfsohos.file.storageStatistics

表1 文件系统空间和应用空间统计

模块接口名功能
@ohos.file.storageStatisticsgetCurrentBundleStats获取当前应用的存储空间大小(单位为Byte)。
@ohos.file.statvfsgetFreeSize获取指定文件系统的剩余空间大小(单位为Byte)。
@ohos.file.statvfsgetTotalSize获取指定文件系统的总空间大小(单位为Byte)。

表2 应用空间统计

BundleStats属性含义统计路径
appSize应用安装文件大小(单位为Byte)

应用安装文件保存在以下目录:

/data/storage/el1/bundle

cacheSize应用缓存文件大小(单位为Byte)

应用的缓存文件保存在以下目录:

/data/storage/el1/base/cache

/data/storage/el1/base/haps/entry/cache

/data/storage/el2/base/cache

/data/storage/el2/base/haps/entry/cache

dataSize应用文件存储大小(除应用安装文件和缓存文件)(单位为Byte)

应用文件由本地文件、分布式文件以及数据库文件组成。

本地文件保存在以下目录(注意缓存文件目录为以下目录的子目录):

/data/storage/el1/base

/data/storage/el2/base

分布式文件保存在以下目录:

/data/storage/el2/distributedfiles

数据库文件保存在以下目录:

/data/storage/el1/database

/data/storage/el2/database

开发示例

  • 获取文件系统数据分区剩余空间大小。

    import { statfs } from '@kit.CoreFileKit';
    import { BusinessError } from '@kit.BasicServicesKit';
    import { common } from '@kit.AbilityKit';
    
    let context = getContext(this) as common.UIAbilityContext;
    let path = context.filesDir;
    statfs.getFreeSize(path, (err: BusinessError, number: number) => {
      if (err) {
        console.error(`Invoke getFreeSize failed, code is ${err.code}, message is ${err.message}`);
      } else {
        console.info(`Invoke getFreeSize succeeded, size is ${number}`);
      }
    });
  • 获取当前应用的存储空间大小。

    import { storageStatistics } from '@kit.CoreFileKit';
    import { BusinessError } from '@kit.BasicServicesKit';
    
    storageStatistics.getCurrentBundleStats((err: BusinessError, bundleStats: storageStatistics.BundleStats) => {
      if (err) {
        console.error(`Invoke getCurrentBundleStats failed, code is ${err.code}, message is ${err.message}`);
      } else {
        console.info(`Invoke getCurrentBundleStats succeeded, appsize is ${bundleStats.appSize}`);
      }
    });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值