nodejs 文件压缩和解压

本文介绍两个nodejs的文件压缩和解压工具

1. node-zip

    可在npm上找到此插件https://npmjs.org/package/node-zip

var zip = new require('node-zip')();
    fs = require("fs");

//读取本地目录中文件再压缩
fs.readFile("a.txt","utf-8", function (err, data) {
            if (err) throw err;
            zip.file("a.txt", data);
            var bufferData = zip.generate({base64:false,compression:'DEFLATE'});
            fs.writeFileSync("result.zip", bufferData, 'binary');
        });

//带有文件夹的压缩
zip.file("aa/test.js", "test文件内容");
var bufferData = zip.generate({base64:false,compression:'DEFLATE'});
fs.writeFileSync("result.zip", bufferData, 'binary');

zip.file("/ea/test.js", "consolo.log('hello world!')");
var bufferData = zip.generate({base64:false,compression:'DEFLATE'});
fs.writeFileSync("result.zip", bufferData, 'binary');

 node-zip也可解压zip文件,但好像不能找个文件夹做解压

2. unzip

    nodejs的zip文件的解压工作,可在git上找到,https://github.com/nearinfinity/node-unzip,npm上也有。

    npm install unzip后便可应用,使用很简单

var fs = require("fs");
unzip = require("unzip");
fs.createReadStream('testj.zip').pipe(unzip.Extract({ path: 'jquery_module' }));

 

 

 

node-stream-zip 是查看和提取大型 ZIP 文件的 Node.js 库。特性:从不加载完整的归档到内存,一切都是通过块读取大型归档支持所有操作都是非阻塞,非同步 i/o快速初始化无依赖,无二进制组件内置 zlib 模块解压deflate, deflate64, sfx, macosx/windows 内置归档ZIP64 支持安装$ npm install node-stream-zip使用var StreamZip = require('node-stream-zip');   var zip = new StreamZip({       file: 'archive.zip',       storeEntries: true     }); zip.on('error', function(err) { /*handle*/ }); zip.on('ready', function() {     console.log('Entries read: '   zip.entriesCount);     // stream to stdout     zip.stream('node/benchmark/net/tcp-raw-c2s.js', function(err, stm) {         stm.pipe(process.stdout);     });     // extract file     zip.extract('node/benchmark/net/tcp-raw-c2s.js', './temp/', function(err) {         console.log('Entry extracted');     });     // extract folder     zip.extract('node/benchmark/', './temp/', function(err, count) {         console.log('Extracted '   count   ' entries');     });     // extract all     zip.extract(null, './temp/', function(err, count) {         console.log('Extracted '   count   ' entries');     });     // read file as buffer in sync way     var data = zip.entryDataSync('README.md'); }); zip.on('extract', function(entry, file) {     console.log('Extracted '   entry.name   ' to '   file); }); zip.on('entry', function(entry) {     // called on load, when entry description has been read     // you can already stream this entry, without waiting until all entry descriptions are read (suitable for very large archives)      console.log('Read entry ', entry.name); });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值