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 statvfs from '@ohos.file.statvfs'; import { BusinessError } from '@ohos.base'; import common from '@ohos.app.ability.common'; let context = getContext(this) as common.UIAbilityContext; let path = context.filesDir; statvfs.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 "@ohos.file.storageStatistics"; import { BusinessError } from '@ohos.base'; 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}`); } });