Obtaining Application and File System Space Statistics
This topic describes how to obtain statistics on the space occupied by your application and the free space and total space of a file system.
Available APIs
For details about the APIs, see ohos.file.statvfs and ohos.file.storageStatistics.
Table 1 APIs for application and file system space statistics
| Module | API | Description |
|---|---|---|
| @ohos.file.storageStatistics | getCurrentBundleStats | Obtains the storage space of the current application, in bytes. |
| @ohos.file.statvfs | getFreeSize | Obtains the free space of a file system, in bytes. |
| @ohos.file.statvfs | getTotalSize | Obtains the total space of a file system, in bytes. |
Table 2 Attributes for application space statistics
| BundleStats Attribute | Description | Directory for Statistics |
|---|---|---|
| appSize | Size of the application installation files, in bytes. | /data/storage/el1/bundle |
| cacheSize | Size of the application cache files, in bytes. | /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 | Size of other files of the application, in bytes. | The files include local files, distributed files, and database files of the application. - Local file directories (parent directories of the cache directories): /data/storage/el1/base /data/storage/el2/base - Distributed file directory: /data/storage/el2/distributedfiles - Database directories: /data/storage/el1/database /data/storage/el2/database |
Development Example
-
Obtain the free space of /data of the file system.
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}`); } }); -
Obtain the space occupied by the current application.
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}`); } });