node-unzip, node.js 跨平台使用流进行解压缩

分享于 

3分钟阅读

GitHub

  繁體
node.js unzip compatible with fstream.
  • 源代码名称:node-unzip
  • 源代码网址:http://www.github.com/EvanOxfeld/node-unzip
  • node-unzip源代码文档
  • node-unzip源代码下载
  • Git URL:
    git://www.github.com/EvanOxfeld/node-unzip.git
    Git Clone代码到本地:
    git clone http://www.github.com/EvanOxfeld/node-unzip
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/EvanOxfeld/node-unzip
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    解压

    用 node.js. 编写的流式跨平台解压工具

    Unzip提供类似于node-tar的简单API,用于解析和提取zip文件。 没有添加的编译依赖- inflation通过在zlib支持中构建的node.js 来处理通货膨胀。 解压也是一个例子,使用了节点pullstream的例子。

    安装

    
    
    
    
    $ npm install unzip
    
    
    
    

    快速示例

    提取到目录

    
    
    
    
    fs.createReadStream('path/to/archive.zip').pipe(unzip.Extract({ path: 'output/path' }));
    
    
    
    

    解压将'关闭'的内容完全提取到磁盘后发出事件。

    解析zip文件内容

    将每个zip文件条目或者管道条目处理到另一个流。

    注意:如果你不打算使用流数据的原始数据,请调用 autodrain() 处理条目的内容。 否则你就会耗尽内存。

    
    
    
    
    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();
    
    
     }
    
    
     });
    
    
    
    

    将 unzip.Parse()的输出输出到 fstream

    
    
    
    
    var readStream = fs.createReadStream('path/to/archive.zip');
    
    
    var writeStream = fstream.Writer('output/path');
    
    
    
    readStream
    
    
    . pipe(unzip.Parse())
    
    
    . pipe(writeStream)
    
    
    
    

    许可证

    ( MIT许可证)

    Copyright (c) 2012 - 2013 near Infinity Corporation


    str  平台  跨平台  streams  Unzip  
    相关文章