Node.js jszip库提取

use*_*782 6 zip unzip node.js jszip

我正在编写一些节点代码,并使用jszip压缩和解压缩一些文件.我知道如何压缩,但无法弄清楚如何解压缩或解压缩.stackoverflow上有几个链接不起作用.有人有任何解决方案?以下是我的尝试

var fs = require('fs');
var JSZip   = require('jszip');
var zipName = "C:/test.zip";
var unzip = "C:/unzip";


fs.readFile(zipName, function (err, data) {
    if (err) throw err;
    var zip = new JSZip();
    zip.folder(unzip).load(data);
});
Run Code Online (Sandbox Code Playgroud)

Dav*_*hel 8

JSZip没有在磁盘上写文件的方法.要做到这一点,你需要迭代zip.files:

var path = require("path");
Object.keys(zip.files).forEach(function(filename) {
  var content = zip.files[filename].asNodeBuffer();
  var dest = path.join(unzip, filename);
  fs.writeFileSync(dest, content);
}
Run Code Online (Sandbox Code Playgroud)

在一个zip文件中,文件夹用正斜杠'/'表示,我认为path.join()将创建一个正确的路径,但我无法测试这个.