首页 > 解决方案 > 在 node.js 上提取 zip 文件卡在 Windows 上

问题描述

我正在使用节点模块在我的应用程序中提取 zip 文件。已经使用了一段时间了。我刚刚意识到在 Windows 上无法提取的文件很少。在 OSX 和 Linux 上没有问题。

压缩包中有很多文件和文件夹。在提取了几个文件后,提取停止并且它停止并且没有错误或输出。

问题不在于所有的拉链,而只是其中的几个。

我不是节点专家,所以我真的不知道如何调试这个问题。有什么方法可以检测流或管道是否失败?

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);
});

我知道该模块不再维护,但它多年来一直做得很好,但我欢迎新的建议。

标签: javascriptnode.js

解决方案


我终于解决了这个问题!感谢 9 年前在 php 手册上留下的评论

问题在于 zip 中的目录包含\. Windows 不会提取包含斜杠的文件夹,即myfolder\. Unixy系统会。


推荐阅读