HarmonyOS 鸿蒙Next openharmony怎么把下载的文件放到公共目录中?

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

HarmonyOS 鸿蒙Next openharmony怎么把下载的文件放到公共目录中? openharmony怎么把下载的文件放到公共目录中?

5 回复

可以使用这个文档 保存用户文件,可以通过文件选择器(FilePicker)将文件保存到公共目录。

function savePublicFile(context: Context, fileName: string, fileData: ArrayBuffer | string){
  let saveOptions = new filePicker.DocumentSaveOptions();
  saveOptions.newFileNames = [fileName];
  let documentViewPicker = new filePicker.DocumentViewPicker(context);
  documentViewPicker.save(saveOptions).then((saveResult) => {
    if(saveResult && saveResult.length){
      const uri = saveResult[0];
      let file = fileIo.openSync(uri, fileIo.OpenMode.READ_WRITE);
      let writeLen = fileIo.writeSync(file.fd, fileData);
      fileIo.closeSync(file);
    }

  }).catch((err: BusinessError) => {
    console.error(`Invoke documentViewPicker.save failed, code is ${err.code}, message is ${err.message}`);
  })
}

更多关于HarmonyOS 鸿蒙Next openharmony怎么把下载的文件放到公共目录中?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


能具体描述下您的场景吗?

需求就是在自己的应用中下载一个安装文件,目前下载的目录只能通过context去获取,存储在了data/app/el2/100/package/haps/entry/下的文件中,怎么可以把文件直接下载到系统自带的文件管理器中的?

开发者您好,目前暂不支持,请关注官网更新。

在HarmonyOS(鸿蒙)Next openharmony系统中,将下载的文件放到公共目录中的操作通常涉及文件系统权限管理和目录结构的了解。以下是一个简要的步骤说明:

  1. 确定公共目录路径: 首先,你需要确定系统中公共目录的具体路径。在鸿蒙系统中,公共目录可能位于特定的系统分区下,例如/storage/emulated/0/Public(路径可能因设备和系统版本而异)。

  2. 获取文件下载路径: 确定你下载的文件当前存储的位置。这通常是在你的应用沙箱内的某个下载目录。

  3. 移动或复制文件: 使用文件操作API(如File类或相应的Native API),将下载的文件从原位置移动到公共目录。这通常涉及读取原文件、创建目标路径下的新文件、并写入数据。

  4. 处理权限问题: 由于公共目录可能涉及系统级权限,你的应用需要拥有相应的权限才能写入。确保在应用的manifest文件中声明了必要的权限,并在运行时请求用户授权(如果适用)。

  5. 验证文件移动: 最后,验证文件是否已成功移动到公共目录,并检查其可读性和完整性。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部