2016-03-02 149 views

回答

2

您可以使用EvanOxfeld/node-unzip解析zip文件内容:

var fs = require('fs') 
var unzip = require('unzip') 
var path = require('path') 
var mkdir = require('mkdirp') 

fs.createReadStream('./archive.zip') 
    .pipe(unzip.Parse()) 
    .on('entry', function (entry) { 

    var fileName = entry.path 
    var type = entry.type 

    if (type==='File' && fileName === 'dir/fileInsideDir.txt') { 

     var fullPath = __dirname + '/output/' + path.dirname(fileName) 
     fileName = path.basename(fileName) 
     mkdir.sync(fullPath) 
     entry.pipe(fs.createWriteStream(fullPath + '/' + fileName)) 

    } else { 
     entry.autodrain() 
    } 

    }) 

[Example archive]