数据存储管理概述
数据存储管理指导开发者基于HarmonyOS进行存储设备(包含本地存储、SD卡、U盘等)的数据存储管理能力的开发,包括获取存储设备列表,获取存储设备视图等。
基本概念
数据存储管理
数据存储管理包括了获取存储设备列表,获取存储设备视图,同时也可以按照条件获取对应的存储设备视图信息。
设备存储视图
存储设备的抽象表示,提供了接口访问存储设备的自身信息。
运作机制
用统一的视图结构可以表示各种存储设备,该视图结构的内部属性会因为设备的不同而不同。每个存储设备可以抽象成两部分,一部分是存储设备自身信息区域,一部分是用来真正存放数据的区域。
图1 存储设备视图
数据存储管理开发
场景介绍
为了给用户展示存储设备信息,开发者可以使用数据存储管理接口获取存储设备视图信息,也可以根据用户提供的文件名获取对应存储设备的视图信息。
开放能力介绍
数据存储管理为开发者提供下面几种功能,具体的API参考。
表1 数据存储管理接口功能介绍
开发步骤
查询设备视图
调用查询设备视图接口。
// 获取默认存储设备挂载状态 MountState status = DataUsage.getDiskMountedStatus(); // 获取存储设备列表 Optional<List<Volume>> list = DataUsage.getVolumes(); // 默认存储设备是否为可插拔设备 boolean pluggable = DataUsage.isDiskPluggable();
查询设备视图属性
1.调用查询设备视图接口获取某个设备视图Volume。
2.调用Volume的接口即可查询视图属性。
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()); } );