数据存储管理指导开发者基于HarmonyOS进行存储设备(包含本地存储、SD卡、U盘等)的数据存储管理能力的开发,包括获取存储设备列表,获取存储设备视图等。
用统一的视图结构可以表示各种存储设备,该视图结构的内部属性会因为设备的不同而不同。每个存储设备可以抽象成两部分,一部分是存储设备自身信息区域,一部分是用来真正存放数据的区域。
图1 存储设备视图
为了给用户展示存储设备信息,开发者可以使用数据存储管理接口获取存储设备视图信息,也可以根据用户提供的文件名获取对应存储设备的视图信息。
数据存储管理为开发者提供下面几种功能,具体的API参考。
功能分类 | 类名 | 接口名 | 描述 |
---|---|---|---|
查询设备视图 | ohos.data.usage.DataUsage | getVolumes() | 获取当前用户可用的设备列表视图。 |
getVolume(File file) | 获取存储该文件的存储设备视图。 | ||
getVolume(Context context, Uri uri) | 获取该URI对应文件所在的存储设备视图。 | ||
getDiskMountedStatus() | 获取默认存储设备的挂载状态。 | ||
getDiskMountedStatus(File path) | 获取存储该文件设备的挂载状态。 | ||
isDiskPluggable() | 默认存储设备是否为可插拔设备。 | ||
isDiskPluggable(File path) | 存储该文件的设备是否为可插拔设备。 | ||
isDiskEmulated() | 默认存储设备是否为虚拟设备。 | ||
isDiskEmulated(File path) | 存储该文件的设备是否为虚拟设备。 | ||
查询设备视图属性 | ohos.data.usage.Volume | isEmulated() | 该设备是否是虚拟存储设备。 |
isPluggable() | 该设备是否支持插拔。 | ||
getDescription() | 获取设备描述信息。 | ||
getState() | 获取设备挂载状态。 | ||
getVolUuid() | 获取设备唯一标识符。 |
查询设备视图
调用查询设备视图接口。
// 获取默认存储设备挂载状态
MountState status = DataUsage.getDiskMountedStatus();
// 获取存储设备列表
Optional<List<Volume>> list = DataUsage.getVolumes();
// 默认存储设备是否为可插拔设备
boolean pluggable = DataUsage.isDiskPluggable();
查询设备视图属性
static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00201, "MY_TAG");
// 获取example.txt 文件所在的存储设备的视图属性
Optional<Volume> volume = DataUsage.getVolume(new File("/sdcard/example.txt"));
volume.ifPresent(theVolume -> {
HiLog.info(LABEL, "isEmulated: %{public}t", theVolume.isEmulated());
HiLog.info(LABEL, "isPluggable: %{public}t", theVolume.isPluggable());
HiLog.info(LABEL, "Description: %{public}s", theVolume.getDescription());
HiLog.info(LABEL, "Volume UUID: %{public}d", theVolume.getVolUuid());
}
);