gpt4 book ai didi

javascript - 使用内置模块压缩文件夹

转载 作者:太空宇宙 更新时间:2023-11-03 22:30:08 25 4
gpt4 key购买 nike

编辑 -> 有人可以建议编辑我的答案吗,例如我不确定 exec 更好还是 spawn 更好?

<小时/>

是否可以使用 zlib 压缩目录/文件夹及其内容和其他内置模块?

我正在寻找一种无需外部依赖即可完成此操作的方法。

另一个选项是在 mac、windows 等上运行本地进程,用于 zip、tar 等,我确信任一操作系统上都有命令行实用程序

This is not an answer但它在某种程度上与我正在寻找的东西有关,它正在生成一个本地进程来压缩。

另一个link我正在看。

Unix command for zip | exec and spawn

我在终端上尝试过的命令有效,

  1. /usr/bin/zip test.zip/resources/html/article
  2. du -hs test.zip

代码

var zip = function(path) {
const spawn = require('child_process').spawn;
const exec = require('child_process').exec;
exec("which zip", function (error, stdout, stderr) {
if (error) {
console.log(error);
} else {
exec(stdout + " -r " + path + "/test.zip " + path, function(error, stdout, stderr){
if(error) {
console.log(error);
} else {
exec("du -hs test.zip", function(error, stdout, stderr){
console.log('done');
console.log(arguments);
});
}
})
}
});
};

最佳答案

在 Mac 上测试并有效。有人可以在 Linux 上测试这个吗?对于 Windows 有什么想法吗?

请注意使用 stdout.trim() 来删除从控制台返回的额外 \n 字符。

function execute(command) {
const exec = require('child_process').exec;
return new Promise(function(resolve, reject){
exec(command, function(error, stdout, stderr){
if(error) {
reject(error);
} else {
stderr ? reject(stderr) : resolve(stdout.trim());
}
});
});
}

函数zip

var zip = function(path) {
execute("which zip")
.then(function(zip){
return execute(zip + " -r abc.zip " + path);
})
.then(function(result){
return execute("du -hs abc.zip");
})
.then(function(result){
console.log(result);
})
.catch(console.error);
};

关于javascript - 使用内置模块压缩文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38298466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com