openharmony 鸿蒙 app-fs-space-statistics

2023-06-24 浏览 (731)

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 APIs, see ohos.file.statvfs and ohos.file.storageStatistics.

Table 1 APIs for application and file system space statistics

ModuleAPIDescription
@ohos.file.storageStatisticsgetCurrentBundleStatsObtains the storage space of the current application, in bytes.
@ohos.file.storageStatisticsgetFreeSizeObtains the available space of the built-in storage, in bytes. This API returns the result asynchronously.
Note: This API is supported since API version 15.
@ohos.file.storageStatisticsgetFreeSizeSyncObtains the available space of the built-in storage, in bytes. This API returns the result synchronously.
Note: This API is supported since API version 15.
@ohos.file.storageStatisticsgetTotalSizeObtains the total space of the built-in storage, in bytes. This API returns the result asynchronously.
Note: This API is supported since API version 15.
@ohos.file.storageStatisticsgetTotalSizeSyncObtains the total space of the built-in storage, in bytes. This API returns the result synchronously.
Note: This API is supported since API version 15.
@ohos.file.statvfsgetFreeSizeObtains the free space of a file system, in bytes.
@ohos.file.statvfsgetTotalSizeObtains the total space of a file system, in bytes.

Table 2 Attributes for application space statistics

NOTE

The directories involved in the statistics path column in the table refer to the sandbox paths of applications. Before viewing the paths, you need to access the corresponding sandbox space by running the following commands:

  1. hdc shell
  2. nsenter -t {pid} -m sh
BundleStats AttributeDescriptionDirectory for Statistics
appSizeSize of the application installation files, in bytes.Application installation file directory:
/data/storage/el1/bundle
cacheSizeSize of the application cache files, in bytes.Application cache file directories:
/data/storage/el1/base/cache
/data/storage/el1/base/haps/entry/cache
/data/storage/el2/base/cache
/data/storage/el2/base/haps/entry/cache
dataSizeSize 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 application 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';
    
    // Obtain the context from the component and ensure that the return value of this.getUIContext().getHostContext() is UIAbilityContext.
    let context = this.getUIContext().getHostContext() 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}`);
      }
    });
    
  • Obtain the total space of the built-in storage asynchronously.

    import { storageStatistics } from '@kit.CoreFileKit';
    import { BusinessError } from '@kit.BasicServicesKit';
    
    storageStatistics.getTotalSize().then((number: number) => {
      console.info(`getTotalSize successfully, number is ${number}`);
    }).catch((err: BusinessError) => {
      console.error(`getTotalSize failed with error, code is ${err.code}, message is ${err.message}`);
    });
    
  • Obtain the total space of the built-in storage synchronously.

    import { storageStatistics } from '@kit.CoreFileKit';
    import { BusinessError } from '@kit.BasicServicesKit';
    
    try {
      let number = storageStatistics.getTotalSizeSync();
      console.info(`getTotalSizeSync successfully, number is ${number}`);
    } catch (err) {
      let error: BusinessError = err as BusinessError;
      console.error(`getTotalSizeSync failed with error, code is ${error.code}, message is ${error.message}`);
    }
    
  • Obtain the available space of the built-in storage asynchronously.

    import { storageStatistics } from '@kit.CoreFileKit';
    import { BusinessError } from '@kit.BasicServicesKit';
    
    storageStatistics.getFreeSize().then((number: number) => {
      console.info(`getFreeSize successfully, number is ${number}`);
    }).catch((err: BusinessError) => {
      console.error(`getFreeSize failed with error, code is ${err.code}, message is ${err.message}`);
    });
    
  • Obtain the available space of the built-in storage synchronously.

    import { storageStatistics } from '@kit.CoreFileKit';
    import { BusinessError } from '@kit.BasicServicesKit';
    
    try {
      let number = storageStatistics.getFreeSizeSync();
      console.info(`getFreeSizeSync successfully, number is ${number}`);
    } catch (err) {
      let error: BusinessError = err as BusinessError;
      console.error(`getFreeSizeSync failed with error, code is ${error.code}, message is ${error.message}`);
    }
    

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Core File Kit

harmony 鸿蒙Accessing Application Files (ArkTS)

harmony 鸿蒙Accessing Backup and Restore

harmony 鸿蒙Application Data Backup and Restore Overview

harmony 鸿蒙Backup and Restore Triggered by System Applications

harmony 鸿蒙Application File Overview

harmony 鸿蒙Application Sandbox

harmony 鸿蒙Introduction to Core File Kit

harmony 鸿蒙Developing a File Manager Application (for System Applications Only)

harmony 鸿蒙Distributed File System Overview

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/bf4cc510e32743c892403ff5c9e392ea