0

我在使用 QuaZip 时遇到问题。

我有一个从 zip 档案中提取文件的程序。我使用的解压缩库大约有 10 年没有维护了,并且包含超过 65000 个文件的存档存在问题,因此我将程序转换为使用 QuaZip。

事实证明,QuaZip 也有同样的问题。我有一个 7-Zip 显示的档案有 67946 个对象。QuaZip 只能看到 2397 个文件。ZipInfo 也仅显示 2397 个文件。这些工具似乎没有针对较新的 zip64 格式进行更新,尽管 QuaZip 似乎确实使用了可能支持 ZIP64 格式的 QuaZipFileInfo64。此外,维基百科将 QuaZip 记录为支持新格式。

为 quazip 对象调用 getEntriesCount() 返回 2397。使用 JlCompress::getFileList 代码获取文件列表仅返回 2397。

不是 100% 确定我在问什么。QuaZip 是否支持存档中超过 65500 个文件?如果是这样,是否有理由让它表现得好像没有?

4

1 回答 1

0

正如我在上一条评论中所怀疑的那样,中央目录标题中的条目数字段在创建时溢出是不正确的。我想出的解决方案是删除 unzGoToNextFile 中假定该条目正确的代码。

于 2018-06-15T14:47:01.600 回答