@ohos.file.storageStatistics (应用空间统计)

该模块提供空间查询相关的常用功能:包括对内外卡的空间查询,对应用分类数据统计的查询,对应用数据的查询等。

说明:

本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import storageStatistics from "@ohos.file.storageStatistics";

storageStatistics.getTotalSizeOfVolume

getTotalSizeOfVolume(volumeUuid: string): Promise<number>

异步获取外置存储设备中指定卷设备的总空间大小(单位为Byte),以Promise方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

参数:

参数名 类型 必填 说明
volumeUuid string 卷设备uuid

返回值:

类型 说明
Promise<number> Promise对象,返回指定卷设备的总空间大小(单位为Byte)

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13600008 No such object.
13900042 Unknown error.

示例:

import volumemanager from "@ohos.file.volumeManager";
import { BusinessError } from '@ohos.base';
volumemanager.getAllVolumes().then((volumes: Array<volumemanager.Volume>) => {
  let uuid: string = volumes[0]......
  storageStatistics.getTotalSizeOfVolume(uuid).then((number: number) => {
    console.info("getTotalSizeOfVolume successfully:" + number);
  }).catch((err: BusinessError) => {
    console.error("getTotalSizeOfVolume failed with error:" + JSON.stringify(err));
  });
}).catch((err: BusinessError) => {
  console.error("getAllVolumes failed with error:" + JSON.stringify(err));
});

storageStatistics.getTotalSizeOfVolume

getTotalSizeOfVolume(volumeUuid: string, callback: AsyncCallback<number>): void

异步获取外置存储设备中指定卷设备的总空间大小(单位为Byte),以callback方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

参数:

参数名 类型 必填 说明
volumeUuid string 卷设备uuid
callback AsyncCallback<number> 获取指定卷设备总空间之后的回调

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13600008 No such object.
13900042 Unknown error.

示例:

import volumemanager from "@ohos.file.volumeManager";
import { BusinessError } from '@ohos.base';
volumemanager.getAllVolumes().then((volumes: Array<volumemanager.Volume>) => {
  let uuid: string = volumes[0].uuid;
  storageStatistics.getTotalSizeOfVolume(uuid, (error: BusinessError, number: number) => {
    if (error) {
      console.error("getTotalSizeOfVolume failed with error:" + JSON.stringify(error));
    } else {
      // do something
      console.info("getTotalSizeOfVolume successfully:" + number);
    }
  });
}).catch((err: BusinessError) => {
  console.error("getAllVolumes failed with error:" + JSON.stringify(err));
});

storageStatistics.getFreeSizeOfVolume

getFreeSizeOfVolume(volumeUuid: string): Promise<number>

异步获取外置存储设备中指定卷设备的可用空间大小(单位为Byte),以Promise方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

参数:

参数名 类型 必填 说明
volumeUuid string 卷设备uuid

返回值:

类型 说明
Promise<number> Promise对象,返回指定卷的可用空间大小(单位为Byte)

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13600008 No such object.
13900042 Unknown error.

示例:

import volumemanager from "@ohos.file.volumeManager";
import { BusinessError } from '@ohos.base';
volumemanager.getAllVolumes().then((volumes: Array<volumemanager.Volume>) => {
  let uuid: string = volumes[0].uuid;
  storageStatistics.getFreeSizeOfVolume(uuid).then((number: number) => {
    console.info("getFreeSizeOfVolume successfully:" + number);
  }).catch((err: BusinessError) => {
    console.error("getFreeSizeOfVolume failed with error:" + JSON.stringify(err));
  });
}).catch((err: BusinessError) => {
  console.error("getAllVolumes failed with error:" + JSON.stringify(err));
});

storageStatistics.getFreeSizeOfVolume

getFreeSizeOfVolume(volumeUuid: string, callback: AsyncCallback<number>): void

异步获取外置存储设备中指定卷设备的可用空间大小(单位为Byte),以callback方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

参数:

参数名 类型 必填 说明
volumeUuid string 卷设备uuid
callback AsyncCallback<number> 获取指定卷可用空间之后的回调

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13600008 No such object.
13900042 Unknown error.

示例:

import volumemanager from "@ohos.file.volumeManager";
import { BusinessError } from '@ohos.base';
volumemanager.getAllVolumes().then((volumes: Array<volumemanager.Volume>) => {
  let uuid: string = volumes[0].uuid;
  storageStatistics.getFreeSizeOfVolume(uuid, (error: BusinessError, number: number) => {
    if (error) {
      console.error("getFreeSizeOfVolume failed with error:" + JSON.stringify(error));
    } else {
      // do something
      console.info("getFreeSizeOfVolume successfully: " + number);
    }
  });
}).catch((err: BusinessError) => {
  console.error("getAllVolumes failed with error:" + JSON.stringify(err));
});

storageStatistics.getBundleStats9+

getBundleStats(packageName: string): Promise<BundleStats>

异步获取应用存储数据的空间大小(单位为Byte),以Promise方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

参数:

参数名 类型 必填 说明
packageName string 应用包名

返回值:

类型 说明
Promise<Bundlestats> Promise对象,返回指定卷上的应用存储数据的空间大小(单位为Byte)

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13600008 No such object.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
let packageName: string = "";
storageStatistics.getBundleStats(packageName).then((BundleStats: storageStatistics.BundleStats) => {
  console.info("getBundleStats successfully:" + JSON.stringify(BundleStats));
}).catch((err: BusinessError) => {
  console.error("getBundleStats failed with error:" + JSON.stringify(err));
});

storageStatistics.getBundleStats9+

getBundleStats(packageName: string, callback: AsyncCallback<BundleStats>): void

异步获取应用存储数据的空间大小(单位为Byte),以callback方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

参数:

参数名 类型 必填 说明
packageName string 应用包名
callback AsyncCallback<Bundlestats> 获取指定卷上的应用存储数据的空间大小之后的回调

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13600008 No such object.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
let packageName: string = "";
storageStatistics.getBundleStats(packageName, (error: BusinessError, BundleStats: storageStatistics.BundleStats) => {
  if (error) {
    console.error("getBundleStats failed with error:" + JSON.stringify(error));
  }  else {
    // do something
    console.info("getBundleStats successfully:" + JSON.stringify(BundleStats));
  }
});

storageStatistics.getCurrentBundleStats9+

getCurrentBundleStats(): Promise<BundleStats>

第三方应用异步获取当前应用存储空间大小(单位为Byte),以Promise方式返回。

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

返回值:

类型 说明
Promise<Bundlestats> Promise对象,返回指定卷上的应用存储空间大小(单位为Byte)

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
401 The input parameter is invalid.
13600001 IPC error.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
storageStatistics.getCurrentBundleStats().then((BundleStats: storageStatistics.BundleStats) => {
  console.info("getCurrentBundleStats successfully:" + JSON.stringify(BundleStats));
}).catch((err: BusinessError) => {
  console.error("getCurrentBundleStats failed with error:"+ JSON.stringify(err));
});

storageStatistics.getCurrentBundleStats9+

getCurrentBundleStats(callback: AsyncCallback<BundleStats>): void

第三方应用异步获取当前应用存储空间大小(单位为Byte),以callback方式返回。

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

参数:

参数名 类型 必填 说明
callback AsyncCallback<BundleStats> 获取指定卷上的应用存储空间大小之后的回调

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
401 The input parameter is invalid.
13600001 IPC error.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
storageStatistics.getCurrentBundleStats((error: BusinessError, bundleStats: storageStatistics.BundleStats) => {
  if (error) {
    console.error("getCurrentBundleStats failed with error:" + JSON.stringify(error));
  } else {
    // do something
    console.info("getCurrentBundleStats successfully:" + JSON.stringify(bundleStats));
  }
});

BundleStats9+

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

名称 类型 可读 可写 说明
appSize number app数据大小(单位为Byte)
cacheSize number 缓存数据大小(单位为Byte)
dataSize number 应用总数据大小(单位为Byte)

storageStatistics.getTotalSize9+

getTotalSize(): Promise<number>

获取内置存储的总空间大小(单位为Byte),以Promise方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

返回值:

类型 说明
Promise<number> Promise对象,返回内置存储的总空间大小(单位为Byte)

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
storageStatistics.getTotalSize().then((number: number) => {
  console.info("getTotalSize successfully:" + JSON.stringify(number));
}).catch((err: BusinessError) => {
  console.error("getTotalSize failed with error:"+ JSON.stringify(err));
});

storageStatistics.getTotalSize9+

getTotalSize(callback: AsyncCallback<number>): void

获取内置存储的总空间大小(单位为Byte),以callback方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 获取内置存储的总空间大小之后的回调

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
storageStatistics.getTotalSize((error: BusinessError, number: number) => {
  if (error) {
    console.error("getTotalSize failed with error:" + JSON.stringify(error));
  } else {
    // do something
    console.info("getTotalSize successfully:" + number);
  }
});

storageStatistics.getTotalSizeSync10+

getTotalSizeSync(): number

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

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

返回值:

类型 说明
number 返回内置存储的总空间大小(单位为Byte)

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
try {
  let number = storageStatistics.getTotalSizeSync();
  console.info("getTotalSizeSync successfully:" + JSON.stringify(number));
} catch (err) {
  let error: BusinessError = err as BusinessError;
  console.error("getTotalSizeSync failed with error:" + JSON.stringify(error));
}

storageStatistics.getFreeSize9+

getFreeSize(): Promise<number>

获取内置存储的可用空间大小(单位为Byte),以Promise方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

返回值:

类型 说明
Promise<number> Promise对象,返回内置存储的可用空间大小(单位为Byte)

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
storageStatistics.getFreeSize().then((number: number) => {
  console.info("getFreeSize successfully:" + JSON.stringify(number));
}).catch((err: BusinessError) => {
  console.error("getFreeSize failed with error:" + JSON.stringify(err));
});

storageStatistics.getFreeSize9+

getFreeSize(callback: AsyncCallback<number>): void

获取内置存储的可用空间大小(单位为Byte),以callback方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 获取内置存储的可用空间大小之后的回调

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
storageStatistics.getFreeSize((error: BusinessError, number: number) => {
  if (error) {
    console.error("getFreeSize failed with error:" + JSON.stringify(error));
  } else {
    // do something
    console.info("getFreeSize successfully:" + number);
  }
});

storageStatistics.getFreeSizeSync10+

getFreeSizeSync(): number

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

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

返回值:

类型 说明
number 返回内置存储的可用空间大小(单位为Byte)

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
try {
  let number = storageStatistics.getFreeSizeSync();
  console.info("getFreeSizeSync successfully:" + JSON.stringify(number));
} catch (err) {
  let error: BusinessError = err as BusinessError;
  console.error("getFreeSizeSync failed with error:" + JSON.stringify(error));
}

storageStatistics.getSystemSize9+

getSystemSize(): Promise<number>

异步获取系统数据的空间大小(单位为Byte),以Promise方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

返回值:

类型 说明
Promise<number> Promise对象,返回系统数据的空间大小(单位为Byte)

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
storageStatistics.getSystemSize().then((number: number) => {
  console.info("getSystemSize successfully:" + number);
}).catch((err: BusinessError) => {
  console.error("getSystemSize failed with error:" + JSON.stringify(err));
});

storageStatistics.getSystemSize9+

getSystemSize(callback: AsyncCallback<number>): void

异步获取系统数据的空间大小(单位为Byte),以callback方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

参数:

参数名 类型 必填 说明
callback AsyncCallback<number> 获取系统数据的空间大小之后的回调

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
storageStatistics.getSystemSize((error: BusinessError, number: number) => {
  if (error) {
    console.error("getSystemSize failed with error:" + JSON.stringify(error));
  } else {
    // do something
    console.info("getSystemSize successfully:" + number);
  }
});

storageStatistics.getUserStorageStats9+

getUserStorageStats(): Promise<StorageStats>

异步获取当前用户各类别存储空间大小(单位为Byte),以Promise方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

返回值:

类型 说明
Promise<StorageStats> Promise对象,返回当前用户各类别存储空间大小(单位为Byte)

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
storageStatistics.getUserStorageStats().then((storageStats: storageStatistics.StorageStats) => {
  console.info("getUserStorageStats successfully:" + JSON.stringify(storageStats));
}).catch((err: BusinessError) => {
  console.error("getUserStorageStats failed with error:" + JSON.stringify(err));
});

storageStatistics.getUserStorageStats9+

getUserStorageStats(callback: AsyncCallback<StorageStats>): void

异步获取当前用户各类别存储空间大小(单位为Byte),以callback方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

参数:

参数名 类型 必填 说明
callback AsyncCallback<StorageStats> 返回用户各类别存储空间大小之后的回调

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
storageStatistics.getUserStorageStats((error: BusinessError, storageStats: storageStatistics.StorageStats) => {
  if (error) {
    console.error("getUserStorageStats failed with error:" + JSON.stringify(error));
  } else {
    // do something
    console.info("getUserStorageStats successfully:" + JSON.stringify(storageStats));
  }
});

storageStatistics.getUserStorageStats9+

getUserStorageStats(userId: number): Promise<StorageStats>

异步获取指定用户各类别存储空间大小(单位为Byte),以Promise方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

参数:

参数名 类型 必填 说明
userId number 用户id

返回值:

类型 说明
Promise<StorageStats> Promise对象,返回指定用户各类别存储空间大小(单位为Byte)

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13600009 User if out of range.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
let userId: number = 100;
storageStatistics.getUserStorageStats(userId).then((storageStats: storageStatistics.StorageStats) => {
  console.info("getUserStorageStats successfully:" + JSON.stringify(storageStats));
}).catch((err: BusinessError) => {
  console.error("getUserStorageStats failed with error:" + JSON.stringify(err));
});

storageStatistics.getUserStorageStats9+

getUserStorageStats(userId: number, callback: AsyncCallback<StorageStats>): void

异步获取指定用户各类别存储空间大小(单位为Byte),以callback方式返回。

需要权限:ohos.permission.STORAGE_MANAGER

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

参数:

参数名 类型 必填 说明
userId number 用户id
callback AsyncCallback<StorageStats> 返回指定用户各类别存储空间大小之后的回调

错误码:

以下错误码的详细介绍请参见文件管理错误码

错误码ID 错误信息
201 Permission verification failed.
202 The caller is not a system application.
401 The input parameter is invalid.
13600001 IPC error.
13600009 User if out of range.
13900042 Unknown error.

示例:

import { BusinessError } from '@ohos.base';
let userId: number = 100;
storageStatistics.getUserStorageStats(userId, (error: BusinessError, storageStats: storageStatistics.StorageStats) => {
  if (error) {
    console.error("getUserStorageStats failed with error:" + JSON.stringify(error));
  } else {
    // do something
    console.info("getUserStorageStats successfully:" + JSON.stringify(storageStats));
  }
});

StorageStats9+

系统能力:SystemCapability.FileManagement.StorageService.SpatialStatistics

系统接口: 该接口为系统接口。

名称 类型 可读 可写 说明
total number 内置存储总空间大小(单位为Byte)
audio number 音频数据大小 (单位为Byte)
video number 视频数据大小(单位为Byte)
image number 图像数据大小 (单位为Byte)
file number 文件数据大小 (单位为Byte)
app number 应用数据大小(单位为Byte)