如何在没有其他库的情况下在Linux和/或Windows中解压缩zip文件?

时间:2018-10-01 07:32:05

标签: node.js

该命令应在linux或Windows环境中运行,而不依赖于任何其他库。

1 个答案:

答案 0 :(得分:0)

非常感谢在Unix / Linux世界中,我们可以依靠unzip的出现。假定具有Powershell v5的“现代” Windows,有一个等效的Expand-Archive命令。

const os = require("os");
const util = require("util");
const exec = util.promisify(require("child_process").exec);

async function unzip(file, destination) {
    const expandCommand = os.platform() === "win32" ?
        `powershell -command "& {&'Expand-Archive' ${file} -DestinationPath ${destination}}"` :
        `unzip ${file} -d ${destination}`;

    const { stdout, stderr } = await exec(expandCommand);
    return stderr ? Promise.reject(stderr) : stdout;
}

唯一棘手的部分是如何通过exec调用powershell。