gpt4 book ai didi

node.js 解压缩模块只提取几个文件

转载 作者:行者123 更新时间:2023-12-04 16:10:27 25 4
gpt4 key购买 nike

我们一直在尝试使用各种 Node 解压缩模块(adm-zip、unzip、extract-zip)来解压缩一些相当大的 zip 文件。在几乎所有这些模块中,我们注意到压缩在第一次成功发生。在 Node 服务器持续运行的情况下,如果有导致再次解压缩给定 .zip 文件的请求,我们会注意到上述所有模块仅提取了部分文件,而遗漏了 zip 中的其余文件。每次 Node 服务器被终止并重新启动时,第一次解压缩会正确发生,随后不会。这可能是什么原因?我们已经尝试在完成处理后清理提取文件的写入目录,因此每次后续解压缩总是进入一个空目录。

最佳答案

我遇到了类似的问题,就我而言,根本原因是进程在提取完成之前就终止了。

关键是要确保在完成提取后您只执行可能导致垃圾清理的代码。在我的例子中,我在错误的假设下调用了 window.location (Electron Framework),即对 unzip 模块的 Extract() 的调用是同步的)。

这是我的成功代码:

fs.createReadStream(fp).pipe(unzipper.Extract({ "path": dirname })
.on('finish', function() {
//Extraction done, you can do any cleanup or navigation here.
window.location = 'listing.html';
})
.on('error', () => console.log("Error"))
)

也许对你来说晚了,但可能对将来像我这样的其他人有用。

关于node.js 解压缩模块只提取几个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43068951/

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