HarmonyOS 鸿蒙Next 文件下载保存到系统文件管理中
HarmonyOS 鸿蒙Next 文件下载保存到系统文件管理中
通过网络请求库进行下载文档文件,将文件下载完成后保存到本地。用户通过打开真机系统文件管理,可以查看到此文件。目前通过context存储到的是沙箱路径,真机通过打开文件管理无法直观查看到此文件?请问如何获取文件真实uri路径,进行直接保存?
可以使用FilePicker来实现文件保存到本地系统管理,FilePicker对应的官网链接:‘https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/save-user-file-V13’
问题处理思路:可以先通过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}`); })
}
更多关于HarmonyOS 鸿蒙Next 文件下载保存到系统文件管理中的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS(鸿蒙)系统中,将文件下载并保存到系统文件管理中,通常可以通过以下步骤实现:
-
权限申请:首先,确保你的应用已申请并获得了存储访问权限。在HarmonyOS中,这通常需要在
config.json
文件中声明权限,并在代码中动态申请。 -
下载文件:使用网络请求库(如HarmonyOS提供的网络API)下载文件。下载时,指定文件的URL和保存路径。
-
保存路径:保存路径应指向系统文件管理的合适位置,如
Documents
、Downloads
等公共目录,或应用专属的存储区域。HarmonyOS提供了文件访问API,允许你指定保存路径。 -
文件写入:下载完成后,将文件数据写入到指定的路径。HarmonyOS的文件系统API支持文件的读写操作。
-
通知用户:下载完成后,可以通过通知或UI提示用户文件已保存。
-
文件访问:用户可以在系统的文件管理器中找到并访问下载的文件。
请注意,具体的实现细节可能因HarmonyOS的版本和设备的不同而有所差异。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html