OpenHarmony 源码解析之JavaScript(文件管理API) 原创 精华
作者:汪刚
1 简介
文件管理在手机、平板、智慧屏等设备上都是一个很重要的功能,通过文件管理相关 API
我们可以实现对指定文件的删除、复制、移动、压缩解压缩等操作。本篇文章通过一个小DEMO
来演示该如何使用官方提供的API
来实现对指定文件的相关操作。
1.1 UI架构相关系列
【OpenHarmony 源码解析之ACE (JavaScript运行环境初始化)】
【OpenHarmony 源码解析之JavaScript API框架(NAPI)】
【OpenHarmony 源码解析之JavaScript(文件管理API)】
1.2 OpenHarmony架构图
1.3 文件管理Demo效果演示
2 基础知识
注意:
- API Version 6 开始支持。
- 目前只能对应用私有目录下的文件操作权限,想实现类似文件管理的应用还需等更高权限的开放。
2.1 主要API
2.2 参考资料
HarmonyOS js-apis-fileio( 文件管理)
OpenHarmony js-apis-fileio.md( 文件管理)
3 示例Demo
目前文件管理API
支持在手机、平板、智慧屏上调用,暂不支持智能穿戴设备上调用。使用该功能模块对文件/目录进行操作前,需要先获取其绝对路径,获取方式及其接口用法请参考Ability上下文。
3.1 获取Ability上下文
- 在使用
AbilityContext
的功能前,需要通过getContext()
先获取Context
对象。在使用AbilityContext
的功能前,需要通过getContext()
先获取Context
对象。 - 示例
3.2 获取应用目录路径
-
目录类型如下图所示:
-
“文件/目录绝对路径”=“应用目录路径”+“文件/目录名”
,通过上述接口获取到应用目录路径dir
,文件名为“xxx.txt”
,文件所在绝对路径为:
let path = dir + "xxx.txt"
; -
示例
3.3 创建测试文件
在对文件操作之前我们首先创建几个测试文件,通过以下代码就可以成功创建文件
- 示例
3.4 导入文件管理模块
3.5 获取文件详细信息
-
以异步方法获取文件信息,使用
callback
形式返回结果 -
以同步方法获取文件的信息
-
以异步方式为例,我们可以获取到文件的大小等信息,代码如下:
-
日志截图如下:
3.6 删除文件
-
以异步方法删除文件,使用
callback
形式返回结果 -
以同步方法删除文件
-
以异步方式为例,执行文件的删除操作,代码如下:
-
通过对比查看删除前后的日志文件可以验证文件删除成功:
3.7 创建文件夹
-
以异步方法创建目录,使用
callback
形式返回结果 -
以同步方法创建目录
-
以同步创建目录方式,创建
dir_test_
测试文件夹,代码如下: -
通过日志我们可以验证文件夹创建成功
3.8 文件的复制、移动操作
-
以异步方法复制文件,使用
callbac
k形式返回结果 -
以同步方法复制文件
-
src:待复制文件的路径或待复制文件的描述符
,dest:
目标文件路径或目标文件描述符,具体代码如下: -
通过查询目标路径下面文件信息来验证操作是否成功
更多原创内容请关注:开鸿 HarmonyOS 学院
入门到精通、技巧到案例,系统化分享HarmonyOS开发技术,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。
文件的增删改查是系统中不可或缺的存在。
JS的文件系统开放了
问一下博主测试这些文件相关的API 可以在模拟器上进行吗 还是必须要真机呢
mkdirSync报Error: No such file or directory是什么情况