HarmonyOS学习路之开发篇—数据管理(数据存储管理)

数据存储管理概述

数据存储管理指导开发者基于HarmonyOS进行存储设备(包含本地存储、SD卡、U盘等)的数据存储管理能力的开发,包括获取存储设备列表,获取存储设备视图等。

基本概念

  • 数据存储管理

    数据存储管理包括了获取存储设备列表,获取存储设备视图,同时也可以按照条件获取对应的存储设备视图信息。

  • 设备存储视图

    存储设备的抽象表示,提供了接口访问存储设备的自身信息。

运作机制

用统一的视图结构可以表示各种存储设备,该视图结构的内部属性会因为设备的不同而不同。每个存储设备可以抽象成两部分,一部分是存储设备自身信息区域,一部分是用来真正存放数据的区域。

图1 存储设备视图

数据存储管理开发

场景介绍

为了给用户展示存储设备信息,开发者可以使用数据存储管理接口获取存储设备视图信息,也可以根据用户提供的文件名获取对应存储设备的视图信息。

开放能力介绍

数据存储管理为开发者提供下面几种功能,具体的API参考。

表1 数据存储管理接口功能介绍

功能分类

类名

接口名

描述

查询设备视图

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();

查询设备视图属性

  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());
    }
);

猜你喜欢

转载自blog.csdn.net/weixin_47094733/article/details/131589347