首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Adm Zip压缩文件作为目录

Adm Zip压缩文件作为目录
EN

Stack Overflow用户
提问于 2015-10-23 14:51:51
回答 3查看 12.7K关注 0票数 14

我正在尝试使用Adm-Zip将文件打包为zip文件

代码语言:javascript
复制
var AdmZip = require('adm-zip');

var pathToZip = 'build/release/Ext.zip';


var zip = new AdmZip();

zip.addLocalFile('background.js');
zip.addLocalFile('chrome_ex_oauth.html');
zip.addLocalFolder('images');
zip.writeZip(pathToZip);

但是,所有文件都是作为文件夹添加到zip中的,而实际内容并没有压缩。

入门参考在下面,这似乎是一个非常简单的例子,它并不像预期的那样工作。我做错了什么?https://github.com/cthackers/adm-zip/wiki/ADM-ZIP-Introduction

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-14 22:24:07

所以我做了一些调查:https://github.com/cthackers/adm-zip/blob/master/adm-zip.js#L275

addFile最终由addLocalFile调用,这似乎是错误发生的地方,特别是在line 281上,它检查ZipEntry是否是一个目录。应用了错误的标志。

为了解决这个问题,我最终手动调用了addFile,并自己指定了属性,这样它就不会依赖于自动检测和错误地将文件标记为目录。

代码语言:javascript
复制
addFile(filePathInArchive, fileBuffer, '', 0644 << 16);

要自己获取fileBuffer,可以使用fs.readFilefs.readFileSync

票数 15
EN

Stack Overflow用户

发布于 2015-12-16 23:29:25

从adm-zip的wiki

空addLocalFile(String localPath,String zipPath)

将磁盘中的文件添加到存档中。

空addLocalFolder(String localPath,String zipPath)

将本地目录及其所有嵌套文件和目录添加到归档中

看起来您遗漏了第二个参数,即zipPath。

票数 1
EN

Stack Overflow用户

发布于 2018-01-18 17:00:33

代码语言:javascript
复制
var zip = new admZip();
var fs=require('fs-extra');
zip.addFile('NGINX/app.js',fs.readFileSync('./app.js'),'',0644);
zip.writeZip("./files.zip");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33296396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档