我正在使用this用于在我的应用程序中提取 zip 文件的 Node 模块。现在已经使用了一段时间了。我刚刚意识到 Windows 上有一些文件无法提取。在 OSX 和 Linux 上没有问题。
zip 中有很多文件和文件夹。提取几个文件后停止提取,并且停止时没有错误或输出。
问题不在于所有 zip,而仅在于其中几个。
我不是 Node 专家,所以我真的不知道如何调试这个问题。有什么方法可以检测流或管道是否失败?
var zip = 'myfile.zip';
var target = 'myfolder';
var zipper = app.fs.createReadStream(zip).pipe(app.unzip.Extract({ path: target }));
zipper.on('close', function(e){
onSuccess();
});
zipper.on('error', function(e){
console.log('Error extracting: ', e);
onError(e);
});
我知道该模块不再被维护,但它多年来一直很好地完成工作,但欢迎我提出新的建议。
最佳答案
这个问题我终于解决了!感谢 9 年前在 php 手册上留下的评论 here .
问题在于 zip 中包含 \
的目录。 Windows 不会提取包含斜杠的文件夹,即 myfolder\
。 Unixy 系统将会。
关于javascript - 在Windows上卡住的node.js上提取zip文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51322008/