使用nodejs对文件操作时,经常会遇到需要对文件进行zip压缩的情况。如果需要过滤一些不需要压缩的文件的话,可以使用其他方法nodejs 压缩过滤不需要压缩的文件
使用
zip("./wenjian', "./wenjian.zip", (s) => console.log(s))
压缩函数
import fs from 'fs'
import path from 'path'
import archiver from 'archiver'
function zip(url, name, cb) {
// init
var output = fs.createWriteStream(name);//创建数据流
output.on('close', () => cb('finish'));//创建完成
// zip
var archive = archiver('zip', {zlib: {level: 9}});//设置压缩格式和等级
archive.on('error', err => cb(err));
archive.pipe(output);
if (fs.statSync(url).isFile()) archive.file(url, {name: path.basename(url)});//文件
else archive.directory(url, '');//文件夹//archive.directory(url, false);
archive.finalize();
}
export {zip}