HarmonyOS 二进制数据Uint8Array写入文件并进行解压操作报错

使用zlib.decompressFile api进行解压操作,一直报错900002 传入的目标文件错误

读取服务端加密数据进行本地解密并进行解压缩操作,一直在解压环节报错文件路径问题

代码:

let filePath = MMKVUtil.filePath+'/dataCache';
fs.mkdir(filePath).then(() => {
  console.info("mkdir succeed");

  let inputFilePath = filePath+'/data.zip';
  let file = fs.openSync(inputFilePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
  fs.writeSync(file.fd,outPutData.buffer);
  fs.closeSync(file);

  let res = fs.accessSync(inputFilePath);
  if (res) {
    console.info("file exists");
  } else {
    console.info("file not exists");
  }

  let outFilePath = filePath+'/data.json';
  let file2 = fs.openSync(outFilePath, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE);
  fs.closeSync(file2);

  let res2 = fs.accessSync(outFilePath);
  if (res2) {
    console.info("file exists");
  } else {
    console.info("file not exists");
  }

  try {
    zlib.decompressFile(inputFilePath, outFilePath, (errData: BusinessError) => {
      if (errData !== null) {
        console.error(`decompressFile failed. code is ${errData.code}, message is ${errData.message}`);
      }
    })
  } catch(errData) {
    console.error(`decompressFile failed. code is ${errData.code}, message is ${errData.message}`);
  }

}).catch((err: BusinessError) => {
  console.error("mkdir failed with error message: " + err.message + ", error code: " + err.code);
});
HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

zlib.decompressFile的第二个参数指定的解压后的文件夹路径,提供的代码片段let outFilePath = filePath+’/data.json’;

outFile为一个文件路径,可以尝试将其修改为文件夹路径可解决900002的报错

分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS Uint8Array转16进制
42浏览 • 2回复 待解决
如何对二进制进行AES解密?
287浏览 • 1回复 待解决
HarmonyOS gzip二进制流压缩和解压
855浏览 • 1回复 待解决
HarmonyOS 二进制转16进制
74浏览 • 1回复 待解决
HarmonyOS 录音发送Uint8Array
70浏览 • 1回复 待解决
HarmonyOS string转Uint8Array
40浏览 • 2回复 待解决
HarmonyOSUint8Array
44浏览 • 1回复 待解决
HarmonyOS进制二进制方法
94浏览 • 1回复 待解决
Uint8Array是@Sendable类吗?
289浏览 • 1回复 待解决
如何直接加载二进制流的图片?
2837浏览 • 1回复 待解决
Uint8Array如何转成ArrayBuffer
1602浏览 • 1回复 待解决
ArrayBuffer怎么转Uint8Array
605浏览 • 1回复 待解决
native层如何访问rawfile的二进制文件
1954浏览 • 1回复 待解决
HarmonyOS Uint8Array怎么正确转ArrayBuffer
1487浏览 • 1回复 待解决
HarmonyOS List<number>怎么转Uint8Array
19浏览 • 1回复 待解决
Uint8Array 如何直接转为String or Json
2742浏览 • 1回复 待解决
如何将Uint8Array转ArrayBuffer?
537浏览 • 1回复 待解决
jsbind--二进制包导入指导
848浏览 • 1回复 待解决
HarmonyOS 如何将Uint8Array转为ArrayBuffer
54浏览 • 1回复 待解决
HarmonyOS string怎么与Uint8Array互转?
462浏览 • 1回复 待解决