在HarmonyOS开发中zip文件解压缩有参考的demo吗?

阅读 567
1 个回答

请参考如下demo:

//解压rawfile下文件 
function rawfileZlibDecompress() { 
  getContext().resourceManager.getRawFileContent('demo.zip', (_err, value) => { 
    let myBuffer: ArrayBufferLike = value.buffer 
    //将rawfile下的文件拷贝至沙箱下,沙箱路径:/data/storage/el2/base/haps/entry/files/demo.zip 
    let filePath = getContext().filesDir + '/demo.zip'; 
    let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); 
    let writeLen = fs.writeSync(file.fd, myBuffer); 
    hilog.info(0xFF00, LOG_TAG, `write data to file succeed and size is:${writeLen}`); 
    fs.closeSync(file); 
 
    let outFileDir = getContext().filesDir; 
    let options: zlib.Options = { 
      level: zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION 
    }; 
    //解压沙箱下的文件 
    try { 
      zlib.decompressFile(filePath, outFileDir, options, (errData: BusinessError) => { 
        if (errData !== null) { 
          hilog.error(0xFF00, LOG_TAG, `errData is errCode:${errData.code}  message:${errData.message}`); 
        } 
      }) 
    } catch (errData) { 
      let code = (errData as BusinessError).code; 
      let message = (errData as BusinessError).message; 
      hilog.error(0xFF00, LOG_TAG, `errData is errCode:${code}  message:${message}`); 
    } 
  }) 
}

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进