前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HarmonyOS学习路之开发篇—数据管理(数据存储管理)

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

作者头像
爱吃土豆丝的打工人
发布2023-10-15 08:59:22
6510
发布2023-10-15 08:59:22
举报
文章被收录于专栏:Harmony学习之路

数据存储管理概述

数据存储管理指导开发者基于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()

获取设备唯一标识符。

开发步骤

查询设备视图

调用查询设备视图接口。

代码语言:javascript
复制
// 获取默认存储设备挂载状态
MountState status = DataUsage.getDiskMountedStatus();
// 获取存储设备列表
Optional<List<Volume>> list = DataUsage.getVolumes();
// 默认存储设备是否为可插拔设备
boolean pluggable = DataUsage.isDiskPluggable();

查询设备视图属性

  1. 调用查询设备视图接口获取某个设备视图Volume。
  2. 调用Volume的接口即可查询视图属性。
代码语言:javascript
复制
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());
    }
);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据存储管理概述
    • 基本概念
      • 运作机制
      • 数据存储管理开发
        • 场景介绍
          • 开放能力介绍
            • 开发步骤
            相关产品与服务
            数据保险箱
            数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档