node-stream-zip库是一款非常棒的zip文件压缩库,使用方便,能解压非标准格式的ZIP文件,经过对比,使用起来比
hzip,unzipper,zip-local等库要方便很多,并且支持同步方法和异步方法。并且和adm-zip一样,支持解压制定文件和目录,adm-zip不能解压非标准的zip文件,例如APK文件。
功能特性
不加载整个文档到内存,内容按块读取
支持大文件
非阻塞读取,没有同步输入/输出
快速初始化
无依赖关系,没有二进制插件
内置zlib模块解压缩
deflate,deflate64,sfx,macosx / windows 内置档案支持
ZIP64支持
使用方法
安装
npm install node-stream-zip
打开ZIP文件
const StreamZip = require('node-stream-zip');
const zip = new StreamZip({
file: 'archive.zip',
storeEntries: true
});
// 报错提示
zip.on('error', err => {
/*...*/ });
可用参数:
storeEntries: 默认为 true 允许使用您zip存档中的条目,否则需要使用条目事件
skipEntryNameValidation:默认为 true 是否检查非法字符路径, 例如…/ 或 c:\123。
列出文件列表
zip.on('ready', () => {
console.log('Entries read: ' + zip.entriesCount);
for (const entry of Object.values(zip.entries