nodejs 批量壓縮文件或文件夾

第一次node js循環使用,開始的時候還以為要等待第一個壓縮完成后循環第二個,結果我錯了。
異步原來是這樣。

牛!120文件手動壓縮,估計要好久。程序太方便了,10秒就壓縮完了。
不過自己寫程序用了1個多小時。下次壓縮文件肯定可以用的到。

/**
 * Created by Administrator on 2017/6/9.
 */
var fs = require('fs');
var archiver = require('archiver');

var path=__dirname;
var dirList = fs.readdirSync(path);
var status=true;
dirList.forEach(function(item){

    console.log(item);
// create a file to stream archive data to.
var output = fs.createWriteStream('F:\\work\\wxapp\\input\\'+item+'.zip');
var archive = archiver('zip', {
    zlib: { level: 9 } // Sets the compression level.
});

// listen for all archive data to be written
output.on('close', function() {
    console.log(archive.pointer()/1024/1024 + 'M');
    console.log('壓縮完成');
});

// good practice to catch this error explicitly
archive.on('error', function(err) {
    status=false;
    throw err;
});

// pipe archive data to the file

        archive.pipe(output);



archive.directory(item+'/');
archive.finalize();

});


// append a file from stream
/*var file1 = __dirname + '/120個小程序源碼/AppleMusic';
archive.append(fs.createReadStream(file1), { name: 'AppleMusic' });*/

// append a file from string
/*archive.append('string cheese!', { name: 'file2.txt' });

// append a file from buffer
var buffer3 = new Buffer('buff it!');
archive.append(buffer3, { name: 'file3.txt' });

// append a file
archive.file('file1.txt', { name: 'file4.txt' });

// append files from a directory
archive.directory('subdir/');

// append files from a glob pattern
archive.glob('subdir/!*.txt');*/

// finalize the archive (ie we are done appending files but streams have to finish yet)
//archive.finalize();

參考文檔:
https://github.com/archiverjs/node-archiver
http://blog.csdn.net/hero82748274/article/details/45700465

如有問題,請留言。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,462評論 25 708
  • 在此特此聲明:一下所有鏈接均來自互聯網,在此記錄下我的查閱學習歷程,感謝各位原創作者的無私奉獻 ! 技術一點一點積...
    遠航的移動開發歷程閱讀 11,230評論 12 197
  • 呆在家里的昏睡情況就是,無緣無故也選擇了睡覺。 但是每次醒來都不昏迷的感覺。 可能是我之前有喝中藥補腎,也許是因為...
    jewelduan閱讀 268評論 0 1
  • 引言:世人常以“美若天仙”四字形容女子之美,但天仙究竟如何美法,誰也不知,此時一見那少女,各人心頭都不自禁的涌出“...
    吃盼君閱讀 1,047評論 7 6
  • 題目描述:給正整數 n 表示樓梯級數,每次能邁一層或者兩層,問一共有多少種登頂法。 分析:基礎的常見題,兩種思路三...
    Nautilus1閱讀 112評論 0 1