目录

应用及文件系统空间统计

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

接口说明

API的详细介绍请参见ohos.file.statvfs、ohos.file.storageStatistics。

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

模块 接口名 功能
@ohos.file.storageStatistics getCurrentBundleStats 获取当前应用的存储空间大小(单位为Byte)。
@ohos.file.storageStatistics getFreeSize

异步获取内置存储的可用空间大小(单位为Byte)。

说明:从API version 15开始,支持该接口。

@ohos.file.storageStatistics getFreeSizeSync

同步获取内置存储的可用空间大小(单位为Byte)。

说明:从API version 15开始,支持该接口。

@ohos.file.storageStatistics getTotalSize

异步获取内置存储的总空间大小(单位为Byte)。

说明:从API version 15开始,支持该接口。

@ohos.file.storageStatistics getTotalSizeSync

同步获取内置存储的总空间大小(单位为Byte)。

说明:从API version 15开始,支持该接口。

@ohos.file.statvfs getFreeSize

获取指定文件系统的剩余空间大小(单位为Byte)。

说明:从API version 9开始,支持该接口。

@ohos.file.statvfs getTotalSize

获取指定文件系统的总空间大小(单位为Byte)。

说明:从API version 9开始,支持该接口。

表2 应用空间统计

表格中统计路径列涉及的目录均指应用的沙箱路径,查看路径前需要先进入对应的应用沙箱空间。进入沙箱空间需要执行以下命令:

  1. hdc shell。
  2. nsenter -t {pid} -m sh。
BundleStats属性 含义 统计路径
appSize 应用安装文件大小(单位为Byte)

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

/data/storage/el1/bundle

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

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

/data/storage/${el1-el5}/base/cache

/data/storage/${el1-el5}/base/haps/${moduleName}/cache

说明:${el1-el5}指的是el1,el2,el3,el4,el5目录。${moduleName}是模块名。

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

应用文件通常由本地文件、分布式文件、数据库文件等部分组成。

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

/data/storage/${el1-el5}/base

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

/data/storage/el2/distributedfiles

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

/data/storage/${el1-el5}/database

说明:${el1-el5}指的是el1,el2,el3,el4,el5目录。

开发示例