HarmonyOS rawfile中的文件如何获取URI

使用 systemShare 进行文件分享时,需要使用文件的uri去创建SharedData,但是,如果待分享的文件是位于应用资源目录下的 rawfile 文件时,如何获取目标rawfile 文件对应的 uri,目前 context.resourceManager 中只提供了 getRawFd 、getRawFileList 和 getRawFileContent 共三个与 rawfile 相关的方法,但返回值都是没有包含 uri 数据的对象

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

可以参考fileUri.getUriFromPath:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fileuri-V5#fileurigeturifrompath

rawfile目录没有对外暴露的沙箱路径,需要先将文件拷贝进应用沙箱下再操作,拷贝进沙箱参考demo:

getContext(this).resourceManager.getRawFileContent('test.txt', (_err, value) => {
  let myBuffer: ArrayBufferLike = value.buffer
  let context = getContext(this);
  //沙箱路径
  let filePath = context.filesDir + "/test.txt";
  console.log("testTag-filePath:" + filePath);
  let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
  let writeLen = fs.writeSync(file.fd, myBuffer);
  console.info("testTag-write data to file succeed and size is:" + writeLen);
  fs.closeSync(file);
})
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS如何解压rawfilezip文件
405浏览 • 1回复 待解决
如何根据uri读取文件?
3171浏览 • 1回复 待解决
无法读取到hsp模块rawfile文件
1995浏览 • 1回复 待解决