HarmonyOS 鸿蒙Next:如何获取 RawFile 下的一个文件夹中包含的所有 Raw 文件以及拷贝

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:如何获取 RawFile 下的一个文件夹中包含的所有 Raw 文件以及拷贝

如何获取 RawFile 下的一个文件夹中包含的所有 Raw 文件?

然后将这些文件进行全部拷贝到沙盒?

期间还涉及到判断是否为文件夹,如果是还需要继续深入拷贝。

8 回复
请问楼主解决了?最近也碰到类似的需求,需要拷贝rawFile下面的文件到沙盒,没找到相关的文档

没有,你使用的是 api 9 还是 10、11? 如果是 9 的话,你可以考虑搞成压缩包,然后解压;或者桥接 c 的 rawfile 如果 10 或 11 ,就很奇怪了。只要随便触发一下拷贝到 files 的操作,就可以看到 files 下有一个 resource/rawfile 的目录,里面就有你所有的 rawfile。

问了下华为的人,Api 11以上有个resfile资源目录,文件可以放这里面,,应用安装后,resfile资源会被解压到应用沙箱路径,通过Context属性resourceDir获取到resfile资源目录后,可通过文件路径访问,拷贝到你自己的目录了

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

真无语了,api 11 又新增了这个。api 是真不稳定,社区也没有官方人维护,又要开发人员来开发。

楼主您好,resourceManager (资源管理)提供访问RawFile资源的接口。文档链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-resource-manager-0000001774281590

谢谢你的回复,这个文档我有看到,但没有可以获取 rawFile 下的所有文件的 api 。

我看到还有一个是 c 的文档,是我需要自己桥接么?

在HarmonyOS中,获取RawFile目录下特定文件夹内的所有Raw文件并拷贝,通常涉及文件系统操作。由于RawFile通常指的是资源文件(如图片、音频等),它们通常被编译进应用包中,并不直接支持像文件系统那样遍历和拷贝。

如果你的意图是处理应用包内的资源文件,你可能需要:

  1. 使用资源ID直接访问这些文件(如通过ResourceTable)。
  2. 如果确实需要遍历或处理这些文件,考虑将它们作为assets或raw资源,并在运行时通过特定的API读取。

对于拷贝操作,由于RawFile是只读的,你不能直接拷贝到外部存储,但可以将内容读取后写入到外部存储的文件中。

如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部