HarmonyOS 从rawfile文件夹中的文件拷贝到沙盒里大小不一样?

从rawfile文件夹中的文件,用fs.copyFile拷贝到沙盒中,大小都不一样

let file = context.resourceManager.getRawFdSync('video_1_1_25_25_1721659617_1721659627_0_35275624.mp4');
fs.copyFileSync(file.fd, filesDir + '/aaa.mp4')

有什么其他方法进行拷贝?

阅读 597
1 个回答

将MP4文件从rawfile文件夹复制到沙箱,可以使用fs.openSync -\> fs.writeSync -\> fs.closeSync

参考以下代码:

getMp3Test(){
  try {
    let array = this.context.resourceManager.getRawFileContentSync("test.mp3");
    // 获取应用文件路径
    let context = getContext(this) as common.UIAbilityContext;
    let filesDir = context.filesDir;
    let filePath = filesDir + '/test.mp3'
    console.log(`沙箱filePath的路径是:${filePath}`)

    // 新建并打开文件
    let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
    //写入文件
    fs.writeSync(file.fd, array.buffer);
    // 关闭文件
    fs.closeSync(file);

    //转换地址,从沙箱获取解析一下
    //let uri = fileUri.getUriFromPath(filePath);
    //console.log('地址是:'+uri)
  } catch (error) {
    let code = (error as BusinessError).code;
    let message = (error as BusinessError).message;
    console.error(`getRawFileContentSync failed, error code: ${code}, message: ${message}.`);
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进