HarmonyOS 下载的文件如何存到公用目录下

HarmonyOS
2025-01-09 17:34:00
1.2w浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
shlp

可以按照以下步骤进行:

1、获取文件路径,获取request.downloadFile下载的文件路径。

2、使用文件管理接口访问文件路径,使用文件管理接口,可以通过文件管理器进入上述路径找到并访问下载的音频文件。

3、将文件保存到手机文件管理,将沙盒中的音频文件复制到手机的文件管理中。可以使用HarmonyOS提供的文件IO接口(如file.fs.copyfile)来实现文件的拷贝。

具体步骤如下:

1、使用file.fs.copyfile将沙盒中的音频文件拷贝到设备中。

2、使用文件管理器在设备中找到并保存该文件。通过以上步骤,可以将通过request.downloadFile下载到应用沙盒中的音频文件保存到手机的文件管理中。

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

import picker from '@ohos.file.picker';
import fs from '@ohos.file.fs';

const photoSaveOptions = new picker.PhotoSaveOptions(); // 创建文件管理器保存选项实例
photoSaveOptions.newFileNames = ["icon.png"]; // 保存文件名(可选)
const photoViewPicker = new picker.PhotoViewPicker();
photoViewPicker.save(photoSaveOptions)
  .then(async (photoSaveResult) => {
    // 获取到到图片或者视频文件的URI后进行文件读取等操作
    let uri = photoSaveResult[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) => {
    console.error(`Invoke documentPicker.select failed, code is ${err.code}, message is ${err.message}`);
  })
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
分享
微博
QQ
微信
回复
2025-01-09 19:57:13


相关问题
HarmonyOS 下载文件并保存到指定目录
831浏览 • 1回复 待解决
鸿蒙如何读取resources目录下文件
4095浏览 • 1回复 待解决
如何获取工程目录下json文件
1425浏览 • 1回复 待解决
java怎么读取公共目录下文件
2774浏览 • 1回复 待解决