当前位置: 首页 > 面试题库 >

需要使用Node.js压缩整个目录

巫马自明
2023-03-14
问题内容

我需要使用Node.js压缩整个目录。我目前正在使用node-
zip,每次运行该进程时,它都会生成一个无效的ZIP文件(如您从此Github问题中所见)。

还有另一个更好的Node.js选项,它可以让我压缩目录吗?

编辑:我最终使用存档器

writeZip = function(dir,name) {
var zip = new JSZip(),
    code = zip.folder(dir),
    output = zip.generate(),
    filename = ['jsd-',name,'.zip'].join('');

fs.writeFileSync(baseDir + filename, output);
console.log('creating ' + filename);
};

参数的样本值:

dir = /tmp/jsd-<randomstring>/
name = <randomstring>

更新:
对于那些询问我使用的实现的人,这是我的下载器的链接:


问题答案:

我最终使用了存档器库。效果很好。

var file_system = require('fs');
var archiver = require('archiver');

var output = file_system.createWriteStream('target.zip');
var archive = archiver('zip');

output.on('close', function () {
    console.log(archive.pointer() + ' total bytes');
    console.log('archiver has been finalized and the output file descriptor has closed.');
});

archive.on('error', function(err){
    throw err;
});

archive.pipe(output);
archive.bulk([
    { expand: true, cwd: 'source', src: ['**'], dest: 'source'}
]);
archive.finalize();


 类似资料:
  • 我正在用Java构建一个文件浏览器,并在JTrees中列出文件/文件夹。我现在想做的是,当我到达一个压缩文件夹时,我想列出它的内容,但不首先提取它。 如果有人有想法,请分享。

  • 问题内容: 有人可以向我解释zlib库在Nodejs中如何工作吗? 我对Node.js很陌生,还不确定如何使用缓冲区和流。 我的简单情况是一个字符串变量,我想将字符串压缩或解压缩(压缩或膨胀,gzip或gunzip等)到另一个字符串。 即(我希望它如何工作) 感谢您的帮助:) 问题答案: 更新 :没意识到在节点0.5中有一个新的内置“ zlib”模块。我在下面的答案是针对第三方node- zlib

  • 问题内容: 我在stackoveflow上找到了一些关于如何压缩特定文件的代码,但是特定文件夹又如何呢? 在中,有文件。压缩后,我还想删除文件夹的全部内容,除了。 我需要你的帮助。谢谢。 问题答案: 代码已于2015/04/22更新。 压缩整个文件夹: 压缩整个文件夹+删除除“ important.txt”以外的所有文件:

  • 问题内容: 我在缓存层(redis)中放入了一些较大的JSON值,我认为它们可以使用一些压缩来稍微减少我的内存使用量。 您使用哪个node.js压缩模块?出于某种原因,joyent / node Modules Wiki 上列出的所有内容看起来都很肮脏-要么是404,没有超过一年的提交,很少有人在看,或者打开了内存泄漏的报告。 Snappy看起来不错,但我宁愿选择更轻便的东西。 我自然希望使用异步

  • 问题内容: 在Python中,当我运行以下代码时: 我收到此错误: 该错误是什么意思? 问题答案: 可能您没有在命令行上提供参数。在这种情况下,只包含一个值,但是必须同时具有两个值才能为和提供值。

  • 我有一个学校作业,要求我接受一个输入流,并使用apache commons压缩库将其压缩成一个字节数组,格式有5种(根据用户规范)。这5种格式是:ZIP、JAR、SEVENZ、BZIP2和gzip。我编写了以下方法以JAR格式压缩输入流,但得到了一个带有字符串“no current entry”的illegalStateException。