当前位置:   article > 正文

OpenHarmony 数据管理—标准化数据定义与描述_openharmony file access判断文件是否存在 异常处理

openharmony file access判断文件是否存在 异常处理

介绍

本示例主要使用@ohos.data.uniformTypeDescriptor 展示了标准化数据定义与描述的功能,在新增预置媒体文件后,对媒体文件的utd标准类型获取、utd类型归属类型查询、获取文件对应的utd类型的默认图标、支持自定义数据类型等功能。 实现过程中还使用到@ohos.file.fs@ohos.router等接口。

效果预览

使用说明

  1. 在主界面,点击“Please select a media file”进入选择媒体类型的主页面;
  2. 在选择媒体类型界面,点击“下拉列表”,在展开的列表中可以选择一种媒体类型,如“Audios”,下面的列表中显示预制文件夹中所有归属于Audio的文件;
  3. 在选择媒体类型界面,点击文件列表中某个文件,跳转到“显示文件信息”界面,该界面中显示文件归属类型的图标和文件名;
  4. 在选择媒体类型界面,点击返回箭头图标,返回到“选择媒体类型”界面。

工程目录

entry/src/main/ets/
|---entryAbility
|---pages
|   |---displayMediaFile.ets       // 显示上一页选中文件的归属类型图标和文件名
|   |---Index.ets                  // 首页
|   |---selectMediaType.ets        // 主页面,提供媒体类型下拉列表,显示选中的媒体类型的所有文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

具体实现

新增文件夹和媒体文件功能

为本示例新增文件夹和媒体文件功能封装在createPrecastFile,源码参考:index.ets

  • 使用fs.accessSync来检查文件或文件夹是否已存在;
  • 使用fs.mkdirSync创建文件夹,文件夹在应用的沙箱目录files下创建;
  • 遍历文件名数组precastFiles,使用fs.accessSync检查文件是否已存在;
  • 使用fs.openSync创建上一步检查结果为不存在的文件;
  • 本功能在首页的aboutToAppear接口中调用。
查找文件归属类型

选中媒体类型,在所有预置文件中查找归属于该类型的文件功能封装在UpdateSelectedFileList,源码参考:selectMediaType.ets

  • 使用fs.listFileSync获取指定目录下的所有文件保存在数组中;
  • 遍历数组中每个文件,调用函数lastIndexOf获取文件后缀位置,再使用接口substring获取文件的后缀;
  • 使用getUniformDataTypeByFilenameExtension获取文件的utd;
  • 使用getTypeDescriptor获取标准化数据类型;
  • 使用接口belongsTo检查文件是否归属于选中的媒体类型,如果返回值为true,则将改文件名保存在显示数组中;
  • 通过标准化数据类型的属性iconFile,获取标准化数据类型的默认图标资源ID;
  • 上述接口的使用参考@ohos.data.uniformTypeDescriptor

自定义数据类型的支持

自定义数据类型的实现
  • 在dev_eco开发时的资源配置目录中添加自定义数据类型配置文件utd.json5,路径:entry/src/main/resources/rawfile/arkdata/utd;
  • utd.json5中新建自定义数据类型数组UniformDataTypeDeclarations;
  • 数组中每个对象包含"typeId",“belongingToTypes”,“FilenameExtensions”,“mimeTypes”,“description”,"referenceURL"6个属性字段。
针对自定义类型各字段的相关要求和限制
  • typeId: 定义标准化数据类型的ID,该ID具有唯一性,由应用bundleName + 具体类型名组成,不可缺省,允许包含数字、大小写字母、-和.。
  • belongingToTypes: 定义标准化数据类型的归属关系,即该标准化数据类型归属于哪个更高层级的类型,所属类型可以为多个,但是必须为已存在的数据
    类型(标准化数据类型预置类型或其他新增自定义数据类型),不能为应用自定义类型本身,不能为空,且与现有标准化数据类型、其他新增自定义数据类型不能形成环形依赖结构。
  • FilenameExtensions: 应用自定义标准化数据类型所关联的文件后缀。可以缺省;可以为多个,每个后缀为以.开头且长度不超过127的字符串。
  • mimeTypes: 应用自定义标准化数据类型所关联的web消息数据类型。可以缺省;可以为多个,每个类型为长度不超过127的字符串。
  • description: 应用自定义标准化数据类型的简要说明。可以缺省;填写时,长度为不超过255的字符串。
  • referenceURL: 应用自定义标准化数据类型的参考链接URL,用于描述类型的详细信息。可以缺省;填写时,长度为不超过255的字符串。

相关权限

ohos.permission.READ_MEDIA

ohos.permission.WRITE_MEDIA

ohos.permission.FILE_ACCESS_MANAGER

ohos.permission.STORAGE_MANAGER

依赖

不涉及

约束与限制

  1. 本示例仅支持标准系统上运行,支持设备:RK3568。
  2. 本示例为Stage模型,仅支持API11版本SDK,SDK版本号(API Version 11 Release),镜像版本号(4.0Release)。
  3. 本示例涉及使用系统接口:@ohos.file.fs中的openSync接口,需要手动替换Full SDK才能编译通过,具体操作可参考替换指南
  4. 本示例需要使用DevEco Studio 版本号(4.0Release)及以上版本才可编译运行。
  5. 本示例涉及调用系统权限的接口,需要配置允许权限列表,可以参考特殊权限配置方法 ,在配置文件中的“allowed-acls”字段中增加"ohos.permission.READ_MEDIA", “ohos.permission.WRITE_MEDIA”, “ohos.permission.FILE_ACCESS_MANAGER”, "ohos.permission.STORAGE_MANAGER"四个权限。

下载

如需单独下载本工程,执行如下命令:

    git init
    git config core.sparsecheckout true
    echo code/BasicFeature/DataManagement/UDMF/UniformTypeDescriptor/UTDType/ > .git/info/sparse-checkout
    git remote add origin https://gitee.com/openharmony/applications_app_samples.git
    git pull origin master
  • 1
  • 2
  • 3
  • 4
  • 5

码牛课堂也为了积极培养鸿蒙生态人才,让大家都能学习到鸿蒙开发最新的技术,针对一些在职人员、0基础小白、应届生/计算机专业、鸿蒙爱好者等人群,整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线。大家可以进行参考学习:https://qr21.cn/FV7h05

①全方位,更合理的学习路径
路线图包括ArkTS基础语法、鸿蒙应用APP开发、鸿蒙能力集APP开发、次开发多端部署开发、物联网开发等九大模块,六大实战项目贯穿始终,由浅入深,层层递进,深入理解鸿蒙开发原理!

②多层次,更多的鸿蒙原生应用
路线图将包含完全基于鸿蒙内核开发的应用,比如一次开发多端部署、自由流转、元服务、端云一体化等,多方位的学习内容让学生能够高效掌握鸿蒙开发,少走弯路,真正理解并应用鸿蒙的核心技术和理念。

③实战化,更贴合企业需求的技术点
学习路线图中的每一个技术点都能够紧贴企业需求,经过多次真实实践,每一个知识点、每一个项目,都是码牛课堂鸿蒙研发团队精心打磨和深度解析的成果,注重对学生的细致教学,每一步都确保学生能够真正理解和掌握。

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:https://qr21.cn/FV7h05

如何快速入门:

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr21.cn/FV7h05

大厂鸿蒙面试题::https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号