NodeJS开发中,操作zip文件有两大类方法:使用三方模块,如node-zip,或调用外部程序。
调用外部程序是使用execfile等方法启动子程序,但这种方式,在不同系统间通用性很差,所以并不推荐。
而使用三方模块的话,通常模块都不支持操作带有密码的zip文件。
经过许久查找,终于从国外资料站查到一个支持密码的zip模块,以下便分享给大家:
这个模块叫作:unzipper。
直接用源码演示其使用方法,注意图中密码:
源码:
const unzipper = require('unzipper');
(async () => {
try {
const directory = await unzipper.Open.file('demo.zip');
const extracted = await directory.files[0].buffer('123456');
console.log(extracted.toString());
} catch(e) {
console.log(e);
}
})();
用于测试的是demo.TXT文件,内容写入“hello”,然后将文件压缩成:demo.zip,压缩前设置密码为:123456。