如何使用nodejs的unzip2获取zip文件的条目列表

时间:2015-11-25 02:42:31

标签: node.js zip unzip

我正在使用unzip2模块https://github.com/glebdmitriew/node-unzip-2来解压缩zip文件流,但是在获取zip条目时,我遇到了问题。

我的代码如下:

var fs = require('fs');
var entries = [];
var srcStream = fs.createReadStream('test.zip');
srcStream.pipe(unzip.Parse())
.on('entry', function(entry) {
  entries.push(entry.path);
  entry.autodrain();
})
.on('finish', function() {
  console.log(entries);
});

但是输出总是“[]”,似乎当“完成”事件得到时,“进入”事件的操作没有完成。

是否有任何解决方案可以获得所有条目清单?

1 个答案:

答案 0 :(得分:2)

使用“关闭”事件代替“完成”可能会解决此问题。

var fs = require('fs');
var entries = [];
var srcStream = fs.createReadStream('test.zip');
srcStream.pipe(unzip.Parse())
.on('entry', function(entry) {
  entries.push(entry.path);
  entry.autodrain();
})
.on('close', function() {
  console.log(entries);
});