js读取zip并解析指定文件

3,492 阅读1分钟

背景:读取某zip压缩包,并解析压缩包里的config.json文件

解决方法:

需要注意的是:如果我们不知道config.json存在在哪个文件夹下,这时有可能存在在某个深层层级下的文件夹下,所以我们要对zip解析出来的文件夹进行一个循环遍历。

需要的依赖:jszip

import JSZip from "jszip";

JSZip.loadAsync(file.raw).then(function(zip) {
        for (let key in zip.files) { // 循环遍历文件夹下的文件
          if (!zip.files[key].dir) {
              /**
              * 可以在层级中检测自己想要的文本类型
              * 替换即可:如 docx  jpg png pdf 等
              */
            //  if (/\.(json)$/.test(zip.files[key].name)) { 
              if (zip.files[key].name == "config.json") { 
                var  base = zip.file(zip.files[key].name).async('string') 
                // uint8array base64 string
                // 可以选择想要的类型输出,比如解图用base64,文本string等
                base.then(res => {
                    // res 是文件里的内容,下面可以对内容进行操作
                    let versionObj = res && JSON.parse(res) || {}
                })
              }
          }
        }})