node-unzip-2
Streaming cross-platform unzip tool written in node.js.
It is an improved version of Evan Oxfeld's node-unzip, which supports unzipping for files with a "STORE" compression (uncompressed files).
Unzip provides simple APIs similar to node-tar for parsing and extracting zip files.
There are no added compiled dependencies - inflation is handled by node.js's built in zlib support. Unzip is also an
example use case of node-pullstream.
Installation
```bash $ npm install unzip2 ```Quick Examples
Extract to a directory
```javascript fs.createReadStream('path/to/archive.zip').pipe(unzip.Extract({ path: 'output/path' })); ``` Extract emits the 'close' event once the zip's contents have been fully extracted to disk.Parse zip file contents
Process each zip file entry or pipe entries to another stream. Important: If you do not intend to consume an entry stream's raw data, call autodrain() to dispose of the entry's contents. Otherwise you risk running out of memory. ```javascript fs.createReadStream('path/to/archive.zip') .pipe(unzip.Parse()) .on('entry', function (entry) {var fileName = entry.path;
var type = entry.type; // 'Directory' or 'File'
var size = entry.size;
if (fileName === "this IS the file I'm looking for") {
entry.pipe(fs.createWriteStream('output/path'));
} else {
entry.autodrain();
}
});
```
Or pipe the output of unzip.Parse() to fstream
```javascript
var readStream = fs.createReadStream('path/to/archive.zip');
var writeStream = fstream.Writer('output/path');
readStream
.pipe(unzip.Parse())
.pipe(writeStream)
```