HarmonyOS 不支持应用沙箱URI、公共目录文件类URI、公共目录媒体类URI相互转换怎么解决?

例如通过 @ohos.file.picker 的 DocumentViewPicker 选择【下载】,返回结果为【file://docs/storage/Users/currentUser/Download】,用这个返回的路径去下载文件到该目录下是不行的(使用应用的沙箱路径:/data/storage/el2/base/files,可以正常下载到该路径下),因此需要提供相应的转换接口

阅读 1.1k
1 个回答

在HarmonyOS中,由于沙箱机制,应用不能直接通过文件系统路径访问文件。针对@ohos.file.picker返回的URI与应用沙箱路径之间的转换问题,可以利用系统提供的API,如MediaStore或ContentResolver,来访问和管理文件。从DocumentViewPicker获取的URI中提取信息,然后通过系统API请求文件访问。使用@ohos.file.fileuri模块:这个模块可以帮助你在URI和沙箱路径之间进行转换,以便安全地共享和访问文件。简而言之,就是要通过HarmonyOS提供的系统API来间接访问文件,而不是直接操作文件路径,同时必须有足够权限。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题