HarmonyOS 下载的文件如何在手机文件夹查看?

下载的文件在沙箱缓存路径下,如何保存到用户可以访问的本地路径?

阅读 671
1 个回答

可以使用FilePicker来实现文件保存到本地系统管理,FilePicker对应的官网链接

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/save-user-file-V5

问题处理思路:可以先通过picker获取到要选择或者保存文件的公共路径,然后通过fs.copyFile进行文件复制,核心示例代码如下

save(){
  const documentSaveOptions = new picker.DocumentSaveOptions(); // 创建文件管理器保存选项实例
  documentSaveOptions.newFileNames = ["icon.txt"]; // 保存文件名(可选)

  const documentViewPicker = new picker.DocumentViewPicker;
  documentViewPicker.save(documentSaveOptions)
    .then(async (documentSaveResult) => {
      // 获取到到图片或者视频文件的URI后进行文件读取等操作
      let uri = documentSaveResult[0];
      console.info('pub uri:' + uri)
      // 沙箱路径文件
      let sanFile = fs.openSync(sanPath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE)
      let pubFile = fs.openSync(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE)
      // 将文件从沙箱路拷贝到公共路径
      fs.copyFileSync(sanFile.fd, pubFile.fd)
    })
    .catch((err:Error) => {
      console.error(`Invoke documentPicker.select failed, message is ${err.message}`); })
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进