Node.JS + 存档器 - 将共享文件夹内容添加到存档

问题描述

我正在尝试使用名为 archiver 的 npm 包压缩共享文件夹,即压缩时正在使用的文件夹。

如果您尝试使用流行的存档程序(如 7zip)执行此操作,它会警告您文件夹的内容正在使用中,并且不会将这些文件添加到存档中。我了解这是预期行为。

但是,在使用 7zip 命令行实用程序时,您可以提供 -sww 标志以指示您正在将共享文件夹的内容添加到存档中,并且它可以按预期完美运行。

我正在尝试使用 archiver npm 包在 Node.JS 中实现相同的行为,但是我在官方文档中找不到任何相关信息。

这是我尝试过的:

import archiver from "archiver";

const archive = archiver("zip",{
  gzip: true,zlib: { level: 9 },});

archive.pipe(
  fs.createWriteStream(path.join(__dirname,"finalZip.zip"))
);

archive.directory(path.join(__dirname,"folderInUse"),"folderInUse");

archive.finalize();

这会引发错误

[Error: EBUSY: resource busy or locked,read] {
  errno: -4082,code: 'EBUSY',syscall: 'read'
}

使用上述库可以做到这一点,还是我必须使用其他东西?

提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)