HarmonyOS关于使用fs.copyfile的问题

​应用在通过fs.copyfile接口将rawFile下的文件拷贝到文件系统后,大小和内容均出现问题,(拷贝过程可正常执行完,过程未出现异常和报错),请问API的使用上是否有什么问题?

API链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fs-V5#fscopyfile

/** 
 *@auth aleckmason 
 *@date 2024/5/2 
 *@desc 文件拷贝测试 
 */ 
static copyRawFileToSdcard(context : common.Context) { 
  let destRoot = context.filesDir; 
  let srcFileName = "privacy_policy.txt" //rawFile下的文件名 
  let destFilePath = destRoot + "/" + PATH.MEDIA_PATH + "/" + srcFileName; 
  console.log("copyRawFileToSdcard filepath : " + destFilePath) 
  //创建文件目录 
  fs.mkdir(destRoot + "/" + PATH.MEDIA_PATH).catch((exp:Error) => { 
    //可能目录已存在或者没有权限 
    console.log("copyRawFileToSdcard mkdir fail : " + JSON.stringify(exp) ) 
  }).then(() => { 
    //创建目录成功 
    console.log("copyRawFileToSdcard mkdir success " ) 
    //获取rawFile的fd 
    return context.resourceManager.getRawFd(srcFileName); 
  }).then((data) => { 
    //拷贝rawFile内容到本地文件存储 
    console.log("copyRawFileToSdcard mkdir fd " + data.fd ) 
    return fs.copyFile(data.fd,destFilePath,0) 
  }).catch((exp:Error) => { 
    //文件拷贝失败 
    console.log("copyRawFileToSdcard write exception  " + JSON.stringify(exp)) 
  }).then(() => { 
    //文件拷贝成功 
    console.log("copyRawFileToSdcard write succes  ") 
  }) 
}
HarmonyOS
2024-09-09 11:02:26
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

可以使用getRawFileContent获取rawfile文件内容,再写入新文件,提供参考:

copyFile(): void { 
  let destRoot = filesDir; 
  let srcFileName = "test.txt" //rawFile下的文件名 
  let destFilePath = destRoot + "/" + PATH.MEDIA_PATH + "/" + "test.txt"; 
  try { 
  context.resourceManager.getRawFileContent(srcFileName, (error: BusinessError, value: Uint8Array) => { 
  if (error != null) { 
  console.error("error is " + error); 
} else { 
  let rawFile = value; 
  let fileStream = fileIo.createStreamSync(destFilePath, "w+"); 
  fileStream.writeSync(rawFile.buffer); 
  fileStream.close(); 
} 
}); 
} catch (error) { 
  let code = (error as BusinessError).code; 
  let message = (error as BusinessError).message; 
  console.error(`callback getRawFileContent failed, error code: ${code}, message: ${message}.`); 
} 
}
分享
微博
QQ
微信
回复
2024-09-09 17:34:16
相关问题
HarmonyOS关于API使用问题
396浏览 • 1回复 待解决
HarmonyOS 关于使用@BuilderParam问题
384浏览 • 1回复 待解决
HarmonyOS fs模块读取文件问题
557浏览 • 1回复 待解决
HarmonyOS关于异步Promise使用问题
458浏览 • 1回复 待解决
关于HarmonyOS webview中iFrame使用问题
309浏览 • 1回复 待解决
HarmonyOS 关于Iconfont如何使用问题
314浏览 • 1回复 待解决
关于 SO 文件使用问题
241浏览 • 1回复 待解决
关于 Extend 使用问题
294浏览 • 1回复 待解决
HarmonyOS 关于VPN一些使用问题
49浏览 • 1回复 待解决
关于xml中include使用问题
7475浏览 • 2回复 待解决
关于 DevEco Studio 使用语言问题
3048浏览 • 1回复 待解决
关于数据持久化使用问题
263浏览 • 1回复 待解决
HarmonyOS 关于ColorFilter问题
430浏览 • 1回复 待解决
HarmonyOS 关于taskpool问题
222浏览 • 1回复 待解决
关于导入图片使用权限和问题
1770浏览 • 1回复 待解决
关于Grid容器和WaterFlow使用问题
904浏览 • 1回复 待解决