HarmonyOS 鸿蒙Next 获取设备总存储空间和可用存储空间

HarmonyOS 鸿蒙Next 获取设备总存储空间和可用存储空间 @ohos.file.statvfs 这个系统能力 使用getFreeSize(path:string)这个方法时,传入什么参数能获取到设备总的可用空间?

8 回复

更多关于HarmonyOS 鸿蒙Next 获取设备总存储空间和可用存储空间的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


需求:获取手机总的存储容量,比如:256G;和已经使用的容量:比如xxx 或这总的剩余空间也行。这个API不是我们想要的

statfs.getTotalSizeSync(context.tempDir)

DeviceInfo也没有提供相关的API。请问大家怎么解决的

const context = getContext()
//获取总共空间
const TotalSize = Number(statfs.getTotalSizeSync(context.filesDir) / 1000 / 1000 / 1000)
//返回值结果是byte,获取剩余空间,MAC、Linux、u盘、DVD光盘、手机系统1MB = 1000kb
const FreeSize = Number(statfs.getFreeSizeSync(context.filesDir) / 1000 / 1000 / 1000)

同问这个问题,文档上面的路径为/dev,真机应该用什么路径才可以得到存储空间和可用存储空间?

ε=(´ο`*)))唉 文档,一言难尽。

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17

真的很难找啊,没有相关例子,

在HarmonyOS鸿蒙Next中,获取设备总存储空间和可用存储空间可以通过StorageManager类实现。具体步骤如下:

  1. 获取StorageManager实例: 使用context.getSystemService(Context.STORAGE_SERVICE)获取StorageManager实例。

  2. 获取存储卷信息: 通过StorageManager.getStorageVolumes()获取设备上的所有存储卷信息。

  3. 计算总存储空间和可用存储空间: 遍历存储卷,使用StorageVolume.getTotalSpace()StorageVolume.getFreeSpace()分别获取总存储空间和可用存储空间。

示例代码如下:

import featureAbility from '@ohos.ability.featureAbility';
import storageStatistics from '@ohos.storageStatistics';

let context = featureAbility.getContext();
let storageManager = context.getSystemService(Context.STORAGE_SERVICE);
let storageVolumes = storageManager.getStorageVolumes();

let totalSpace = 0;
let freeSpace = 0;

for (let volume of storageVolumes) {
    totalSpace += volume.getTotalSpace();
    freeSpace += volume.getFreeSpace();
}

console.log("Total Space: " + totalSpace);
console.log("Free Space: " + freeSpace);

此代码将输出设备的总存储空间和可用存储空间。注意,存储空间单位为字节。

回到顶部