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

HarmonyOS
2天前
浏览
收藏 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}`);
  })
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 下载文件并保存到指定目录
294浏览 • 1回复 待解决
鸿蒙如何读取resources目录下文件
3630浏览 • 1回复 待解决
如何获取工程目录下json文件
1187浏览 • 1回复 待解决
java怎么读取公共目录下文件
2383浏览 • 1回复 待解决
资源目录下文件到沙箱单向流动
1154浏览 • 1回复 待解决