获取 zip 条目的实际大小

nab*_*lex 3 java zip 7zip

我必须分析 zip 文件以检查其中的内容有多大,但是 ZipEntry.getSize() 不断返回 -1。如果原始尺寸未知,则这是根据规格的,但由于某种原因,7-zip 似乎确实知道实际尺寸,因为如果我用它打开 zip,就会显示它。

有谁知道 7-zip 是如何做到这一点的?它只是简单地估计吗?

Nic*_*sky 5

也许 ZipEntry 只处理本地文件头,而不是压缩完成后写入 zip 存档末尾的中央目录,并且应该包含实际的文件大小信息。

  • 这看起来很准确,我已经编写了一些代码来解析中央目录,并且那里有正确的大小。谢谢! (3认同)