例如通过 @ohos.file.picker 的 DocumentViewPicker 选择【下载】,返回结果为【file://docs/storage/Users/currentUser/Download】,用这个返回的路径去下载文件到该目录下是不行的(使用应用的沙箱路径:/data/storage/el2/base/files,可以正常下载到该路径下),因此需要提供相应的转换接口
例如通过 @ohos.file.picker 的 DocumentViewPicker 选择【下载】,返回结果为【file://docs/storage/Users/currentUser/Download】,用这个返回的路径去下载文件到该目录下是不行的(使用应用的沙箱路径:/data/storage/el2/base/files,可以正常下载到该路径下),因此需要提供相应的转换接口
1 回答1.1k 阅读✓ 已解决
1 回答1.1k 阅读
1 回答982 阅读
1 回答951 阅读
1 回答859 阅读
822 阅读
705 阅读
在HarmonyOS中,由于沙箱机制,应用不能直接通过文件系统路径访问文件。针对@ohos.file.picker返回的URI与应用沙箱路径之间的转换问题,可以利用系统提供的API,如MediaStore或ContentResolver,来访问和管理文件。从DocumentViewPicker获取的URI中提取信息,然后通过系统API请求文件访问。使用@ohos.file.fileuri模块:这个模块可以帮助你在URI和沙箱路径之间进行转换,以便安全地共享和访问文件。简而言之,就是要通过HarmonyOS提供的系统API来间接访问文件,而不是直接操作文件路径,同时必须有足够权限。