鸿蒙Next如何获取存储空间大小

鸿蒙Next系统如何获取设备存储空间的总容量和可用空间?有没有相关的API接口可以调用?希望能提供具体的代码示例和实现步骤。

2 回复

鸿蒙Next里查存储空间?简单!调用ohos.file.statvfs模块的getTotalSizegetFreeSize方法就行。就像问手机:“你还剩多少内存?”它老实回答:“报告!还剩XX GB,快清垃圾吧!”记得先申请权限,不然系统会傲娇地拒绝你~

更多关于鸿蒙Next如何获取存储空间大小的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next(HarmonyOS NEXT)中,可以通过@ohos.file.fs模块获取存储空间大小。以下是具体方法:

1. 导入模块

import fs from '@ohos.file.fs';

2. 获取存储统计信息

使用fs.getFreeSizefs.getTotalSize获取可用空间和总空间:

// 获取应用沙箱路径(默认获取内部存储)
let path: string = '此处填写目录路径'; // 例如应用沙箱路径

// 异步获取
async function getStorageSize() {
  try {
    let freeSize = await fs.getFreeSize(path);
    let totalSize = await fs.getTotalSize(path);
    console.log(`可用空间: ${freeSize} 字节,总空间: ${totalSize} 字节`);
  } catch (err) {
    console.error('获取存储空间失败: ' + JSON.stringify(err));
  }
}

// 同步获取(需在Worker线程使用)
// let freeSize = fs.getFreeSizeSync(path);
// let totalSize = fs.getTotalSizeSync(path);

3. 权限配置(如访问外部存储)

module.json5中添加存储权限:

{
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.FILE_ACCESS_MANAGER",
        "reason": "需要访问存储空间"
      }
    ]
  }
}

注意事项:

  1. 路径参数需使用应用可访问的目录(如沙箱路径)。
  2. 返回值为字节数,可自行转换为GB/MB(1GB = 1024^3 字节)。
  3. 系统存储需使用abilityAccessCtrl申请权限。

示例完整代码可参考HarmonyOS文件管理文档

回到顶部