我需要在node.js中创建一个ZIP文件,受密码保护.
我使用“node-zip”模块,遗憾的是不支持密码保护:
var zip = new require('node-zip')(); zip.file('test.file','hello there'); var data = zip.generate({base64:false,compression:'DEFLATE'});
解决方法
如果你在linux上工作,那么你可以在zip(大多数Linux发行版中的命令行实用程序)的帮助下完成它.只需在您的应用中包含以下内容即可
spawn = require('child_process').spawn; zip = spawn('zip',['-P','password','archive.zip','complete path to archive file']); zip .on('exit',function(code) { ...// Do something with zipfile archive.zip ...// which will be in same location as file/folder given });
如果你想压缩文件夹,只需在文件夹路径而不是文件路径之前放入另一个参数’-r’.
请记住,这会从主进程生成单独的线程,因此它是非阻塞的.有关child_process的更多信息,请查看此处http://nodejs.org/api/child_process.html