HarmonyOS文件读写相关问题

通过文件选择器,选择了一个文件,详细目录是:file://docs/storage/Users/currentUser/Download/123.mp3

调用写的这个方法读取这个文件时,一直提示文件不存在。

async function copyFile(context: common.UIAbilityContext): Promise<void> { 
  //拷贝文件 
  let applicationContext = context.getApplicationContext(); 
  let cacheDir = applicationContext.cacheDir; 
  let tempDir = applicationContext.tempDir; 
  console.error("沙箱路径:" + tempDir) 
  let musicPath='file://docs/storage/Users/currentUser/Download/123.mp3'; 
  let fileUriObject = new fileUri.FileUri(musicPath); 
  console.error("文件路径:"+fileUriObject.path) 
  console.error("文件名称:"+fileUriObject.name) 
  fs.stat(fileUriObject.path+'/'+fileUriObject.name).then((stat: fs.Stat) => { 
    console.error("文件大小是:" + stat.size); 
  }).catch((err: BusinessError) => { 
    console.error("读取文件失败: " + err.message + ", error code: " + err.code); 
  }); 
 
}

输入日志:

E     沙箱路径:/data/storage/el2/base/temp   
E     文件路径:/storage/Users/currentUser/Download/123.mp3   
E     文件名称:123.mp3   
E     读取文件失败: No such file or directory, error code: 13900002 

文件读写权限是已经申请了的。

想实现选中一个文件之后,然后使用c语言来修改这个文件,并且保存文件然后再返回给ArkTS层,目前这个文件路径这里有点一头雾水,请解答一下。

例如需要读取文件:file://docs/storage/Users/currentUser/Download/123.mp3下面这个C代码中的xxx应该是什么值?怎么设置这个值?

FILE *file = fopen("xxx", "rb"); // 替换input_filename为你的输入文件名变量 
if (file) { 
  fseek(file, 0, SEEK_END); 
  long size = ftell(file); 
  fclose(file); 
  OH_LOG_ERROR(LOG_APP, "文件大小: %{public}s", size); 
}else{ 
  OH_LOG_ERROR(LOG_APP, "文件不存在: %{public}s", argv[2]); 
}
HarmonyOS
2024-09-09 11:29:16
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect

fs仅能访问应用内的沙箱路径。公共目录下的文件访问可以通过文件选择器来读取,音频选择器参考如下文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-picker-V5#select-6

分享
微博
QQ
微信
回复
2024-09-09 15:17:56
相关问题
HarmonyOS文件读写权限问题
353浏览 • 1回复 待解决
HarmonyOS应用内配置文件读写问题
313浏览 • 1回复 待解决
harmonyos怎么读写文件
11120浏览 • 1回复 已解决
HarmonyOS 文件读写权限如何获得?
299浏览 • 1回复 待解决
HarmonyOS 应用文件分享-读写权限咨询
314浏览 • 1回复 待解决
HarmonyOS 上传文件相关Demo
388浏览 • 1回复 待解决
鸿蒙系统的文件读写权限如何设置?
54浏览 • 0回复 待解决
程序怎么读写设备上的文件啊?
4030浏览 • 1回复 待解决
如何以流的形式读写文件
618浏览 • 1回复 待解决
如何读写各种途径创建的文件
681浏览 • 1回复 待解决
HarmonyOS 证书相关问题
288浏览 • 1回复 待解决
HarmonyOS Grid相关问题
300浏览 • 1回复 待解决
HarmonyOS BindSheet相关问题
289浏览 • 1回复 待解决
HarmonyOS 线程相关问题
330浏览 • 1回复 待解决
HarmonyOS AccountKit相关问题
359浏览 • 1回复 待解决
HarmonyOS KVStore 相关问题
119浏览 • 1回复 待解决
HarmonyOS RN相关问题
376浏览 • 1回复 待解决
HarmonyOS CardRecognition相关问题
74浏览 • 1回复 待解决
HarmonyOS protobuf相关问题
342浏览 • 1回复 待解决
HarmonyOS 地图相关问题
509浏览 • 1回复 待解决
HarmonyOS音频相关问题
405浏览 • 1回复 待解决
如何对一个文件进行读写操作
360浏览 • 1回复 待解决
HarmonyOS 路由栈相关问题
168浏览 • 1回复 待解决
HarmonyOS Video组件相关问题
306浏览 • 1回复 待解决