Aback ZIP
本地处理
基础5 min read

ZIP64 详解:超过 4 GB 的大型压缩包

什么是 ZIP64、为什么超过 4 GB 的压缩包需要它,以及浏览器如何处理非常大的 ZIP 文件。

最初的 ZIP 格式设计于文件以千字节计量的时代。它使用 32 位数字表示大小和偏移量,这使经典 ZIP 限制在 4 GB 和 65,535 个条目以内。ZIP64 是使用 64 位数字的扩展,让压缩包可以远远超过这些限制。

经典限制

在经典 ZIP 文件中,大小、偏移量和条目数量以 32 位无符号整数存储。实际后果如下:

  • 压缩包内的单个文件最多 4 GB。
  • 压缩包本身不能超过约 4 GB。
  • 压缩包最多只能包含 65,535 个条目。

ZIP64 的工作原理

ZIP64 不改变基本格式。它添加了携带 64 位值的扩展字段和记录,以及一个 ZIP64 中央目录结束记录和一个指向它的定位器。理解 ZIP64 的读取器使用 64 位值;不理解的读取器仍能找到经典结构,通常会优雅地拒绝该文件。

什么时候需要 ZIP64?

当单个条目超过 4 GB、压缩包总量超过 4 GB 或条目数量超过 65,535 时,你需要 ZIP64。视频项目、数据库转储和大型备份集合经常会达到这些限制。

浏览器中的 ZIP64

浏览器是 JavaScript 环境,而 JavaScript 数字只在 9,007,199,254,740,991 以内是安全的,这仍然远高于 4 GB。压缩包代码必须在不溢出为不安全整数的情况下读取 64 位字段。Aback ZIP 会在存在 ZIP64 字段时解析它们,并在 ZIP 查看器中显示。

Frequently asked questions

ZIP64 文件与旧软件兼容吗?

较旧的压缩工具可能不理解 ZIP64,会拒绝文件或错误报告大小。现代工具无需用户操作即可处理 ZIP64。

Aback ZIP 支持 ZIP64 吗?

Aback ZIP 会读取 ZIP64 元数据并安全处理大数值。实际限制由浏览器中的可用内存决定。