ZIP 未压缩大小指的是 ZIP 压缩包内的某个文件在再次解压后所占用的字节数,与之相对的是该文件在压缩包内时通常更小的压缩大小。元数据读取器 ExifTool 将它显示为 ZipUncompressedSize。
哪些文件包含它,以及这个数字从何而来
压缩包会记录这个值。ZIP 文件会记录它,所有本质上是 ZIP 容器的常见格式也会记录它,例如 .docx、.xlsx 和 .pptx 文档、.odt 文件、.epub 电子书、.jar 和 .apk 安装包。RAR、7z 和其他压缩格式也会在各自的结构中存储同样的数值。报告中可能不会为 .odt 和 .epub 文件列出这个数值,即使文件本身已经保存了它。
压缩包通常用于把多个文件合并成一个,不过也可以只压一个文件。压缩软件在打包时会记录每个文件成员的原始大小。这一步由创建压缩包的任意程序自动完成,例如 7-Zip、WinRAR、WinZip、macOS 的存档实用工具、Windows 的压缩文件夹命令或 zip 命令行程序。
需要理解的一点是,这个数值是一种声明。压缩包声明内容在解压后应当有多大;在你真正解压之前,没有任何东西会验证它,只有在解压时才会把得到的大小和已存储的校验和与解压结果进行比对。
典型的数值是什么样子
这是一个以字节为单位的整数,很多程序会将其换算成 KB 或 MB 来显示。一个较短的 Word 文本可能会显示为未压缩 48219 字节,而在 .docx 文件中只占用其中很小的一部分空间。
用压缩大小除以这个值就得到了压缩比。差距有多大取决于内容本身和所用的方法;Deflate 是 ZIP 文件中的标准压缩方法,BZIP2 和 LZMA 是常见替代方案。有一个细节值得注意:原始 ZIP 字段是 32 位的,因此最大只能表示 4,294,967,295 字节,略低于 4 GB。更大的内容依赖 ZIP64 扩展,它会在额外的记录中保存真实数值,所以不支持 ZIP64 的非常老旧程序,面对超大文件时可能会给出被截断或毫无意义的数字。
它的重要性
它最实用的用途在于规划。这一数值可以在你解压前告诉你内容是否放得下,而且结果可能会大大超出预期,因为一个看似不大的文本或日志文件压缩包,解压后可能会膨胀到好几个 GB。把它与压缩大小对比还能让你判断压缩是否真正起作用:两者几乎相等说明内容本身已经被压缩过,比如 JPEG、MP3 和 MP4 文件,再打包也不会节省空间。
它同时也是一个合理性检查。一个只有几百 KB 的压缩包,如果声明了巨大的未压缩大小,就需要提高警惕,因为恶意构造的压缩包正是利用这种方式,在别人解压时迅速占满磁盘。用于归档时,检查方向则相反:把声明的大小与实际解压结果进行比较,是确认旧压缩包是否仍然完整的简单方法。
该数值不包含任何个人信息。它只描述数据体量,而与创建它的人无关。