IT评测·应用市场-qidao123.com

标题: 鸿蒙HarmonyOS (开发进阶)Native侧实现文件访问 [打印本页]

作者: 三尺非寒    时间: 2025-3-9 21:21
标题: 鸿蒙HarmonyOS (开发进阶)Native侧实现文件访问
鸿蒙NEXT开发实战往期必看文章:
一分钟了解”纯血版!鸿蒙HarmonyOS Next应用开发!
“非常具体的” 鸿蒙HarmonyOS Next应用开发学习门路!(从零基础入门到精通)
HarmonyOS NEXT应用开发案例实践总结合(连续更新......)
HarmonyOS NEXT应用开发性能优化实践总结(连续更新......)

概述

在对文件处置处罚性能要求高的场景中,Native侧访问文件处置处罚数据比在ArkTS侧操作文件有更高的效率和更快的响应,例如处置处罚大文件、复杂的文件操作以及实时通信等低时延场景。根据文件位置的差别,应用在Native侧访问文件可以分为以下三种范例:

本文将针对这三种场景给出具体的实现方案。
访问应用沙箱文件

应用沙箱是一种以安全防护为目的的隔离机制,避免数据受到恶意路径穿越访问。在这种沙箱的掩护机制下,应用可见的目次范围即为“应用沙箱目次”,沙箱中的文件就需要通过沙箱路径去举行访问。Native侧获取沙箱路径的方案有两种:

方案一:ArkTS侧获取沙箱路径传递给Native侧访问文件

图1 ArkTS侧获取沙箱路径传递给Native侧访问文件示意图

实现方案
这里以访问沙箱文件并写入文本的场景为例,实现分案分为Native侧定义操作文件的方法和ArkTS侧调用该方法两部门。
第一部门:在Native侧定义一个方法,用于吸收沙箱路径并将文本写入到文件中。
第二部门:在Native侧访问沙箱文件写数据的功能实现后,在ArkTS侧调用该方法。
通过上述步骤,实现了在Native侧通过ArkTS侧传递的沙箱路径访问与操作应用沙箱文件的方案。
效果展示
图2 ArkTS侧传递沙箱路径到Native侧方案效果展示



方案二:Native侧直接拼接沙箱路径访问文件

图3 Native侧直接拼接沙箱路径访问文件示意图

实现方案
这里同样以访问沙箱文件并写入文本的场景为例,实现分案分为Native侧定义操作文件的方法和ArkTS侧调用该方法两部门。
第一部门:在Native侧定义一个方法,用于拼接沙箱路径并将文本写入到文件中。
第二部门:Native侧访问沙箱文件写数据的功能实现后,在ArkTS侧调用该方法。
通过上述步骤,实现了在Native侧通过拼接沙箱路径访问与操作应用沙箱文件的方案。
效果展示
图4 Native侧拼接沙箱路径方案效果展示



访问应用包内资源文件

Native侧可以通过Resource Manager操作应用资源文件中的Rawfile目次和文件,这里以Native侧读取Rawfile文件内容的场景为例先容该方案。
图5 Native侧访问应用资源文件方案示意图

实现方案
实现分案分为Native侧定义操作文件的方法和ArkTS侧调用该方法两部门。
第一部门:在Native侧定义一个读取文件的方法,注意使用Resource Manager需要引用头文件rawfile/raw_file_manager.h,并在工程的cmakelists.txt文件中链接动态库librawfile.z.so。
第二部门:Native侧访问Rawfile文件读数据的功能实现后,在ArkTS侧调用该方法。
通过上述步骤,实现了在Native侧通过ArkTS侧传递的Resource Manager访问与读取应用资源文件的方案。
效果展示
图6 ArkTS侧传递resource manager到Native侧方案效果展示



访问公共目次文件

系统公共目次下储存的是用户文件,应用对用户文件的操作需要提前获取用户授权,或由用户操作完成。我们可以通过系统预置的文件选择器(FilePicker)实现该能力,目前重要有创建文件、写入和读取三类操作,创建文件可以直接使用picker,针对Native侧,有如下两种场景:

场景一:写数据到公共目次文件

场景描述
ArkTS侧通过文件picker在公共目次下创建文件,并传递文件描述符到Native侧,Native侧通过文件描述符打开文件并将数据写入到文件中。
图7 Native侧写入公共目次文件场景示意图

实现方案
实现分案分为Native侧定义操作文件的方法和ArkTS侧调用该方法两部门。
第一部门:在Native侧定义一个方法,用于吸收文件描述符并将数据写入到文件中,注意使用文件描述符操作文件需要引用头文件unistd.h。
第二部门:Native侧访问公共目次文件写数据的功能实现后,在ArkTS侧调用该方法。
通过上述步骤,实现了在Native侧通过ArkTS侧picker传递的文件资源描述符访问公共目次文件并写入内容的方案。
效果展示
图8 Native侧写公共目次文件场景方案效果展示



场景二:从公共目次文件中读取数据

场景描述
ArkTS侧通过文件picker选择文件,并传递文件描述符到Native侧,Native侧通过文件描述符打开文件并读取文件数据。
图9 Native侧读取公共目次文件场景示意图

实现方案
实现分案分为Native侧定义操作文件的方法和ArkTS侧调用该方法两部门。
第一部门:在Native侧定义一个方法,用于吸收文件描述符并将数据写入到文件中,注意使用文件描述符操作文件需要引用头文件unistd.h。
第二部门:Native侧访问公共目次文件读数据的功能实现后,在ArkTS侧调用该方法。
通过上述步骤,实现了在Native侧通过ArkTS侧picker传递的文件资源描述符访问公共目次文件并读取内容的方案。
效果展示
图10 Native侧读公共目次文件场景方案效果展示





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4