HarmonyOS 关于 Zip模块 从项目内解压zip文件的问题?

  1. zlib.decompressFile 的参数 inFile 可以取到项目内的路径吗?例如zip文件路径为 /entry/assets/xxx.zip。
  2. zlib.decompressFile 的参数 outFile 同样可以取到项目内的路径吗?
阅读 407
1 个回答

inFile 和 outFile 文件路径必须为沙箱路径,沙箱路径可以通过context获取 参考地址:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-zlib-V5\#zlibdecompressfile9

参考示例如下:

import fs from '@ohos.file.fs';
import { BusinessError } from '@kit.BasicServicesKit';
import { unzipToDirectory  } from '@ohos/minizip'

@Entry
@Component
struct Page240624161324069 {
  @State context:Context =getContext(this);

  build() {
    Column() {
      Row() {
        Button('jszip unzip testpwd').onClick(() => {
          const content = this.context.resourceManager.getRawFileContentSync("testpwd.zip");
          let file2 = fs.openSync(this.context.filesDir + '/testpwd.zip', fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
          fs.writeSync(file2.fd, content.buffer);
          fs.close(file2);
          unzipToDirectory(this.context.filesDir + '/testpwd.zip', this.context.filesDir + '/unziptestpwd', '123456').then((result) => {
            console.log(result);
          }).catch((err: BusinessError) => {
            console.log(err.message);
          });
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

参考地址:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-resource-manager-V5\#getrawfilecontentsync10

目前没有办法解压到项目指定文件夹的

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