.zip 文件中的文件是不是始终被压缩?
Posted
技术标签:
【中文标题】.zip 文件中的文件是不是始终被压缩?【英文标题】:Are files in a .zip file always compressed?.zip 文件中的文件是否始终被压缩? 【发布时间】:2019-04-17 14:45:17 【问题描述】:在工作中,我正在实现一个可以处理文件的新 Web 服务。规范说我们不应该接受压缩的 .zip 文件。
是否有未压缩的 .zip 文件之类的东西?如果是,您认为使用 Java (1.8) 检测一个的最佳方法是什么?
【问题讨论】:
ZipFile 包。是的,那里有一种未压缩的格式。 ZipEntry.STORED 来自***:“ZIP 允许使用许多不同的方法压缩包含的文件,以及简单地存储文件而不压缩它” 【参考方案1】:是的,zip 可以解压缩。事实上,早期的.jar
文件只是未压缩的.zip
文件。
ZipEntry
类有getMethod
来获取条目的压缩方法。其中一个选项是STORED
(例如,未压缩)。
【讨论】:
谢谢,我不知道这个。我只是对一件棘手的事情感到好奇,zip文件中的每个条目是否都会被存储?我确实这么认为,但我不确定。 @Pistacchio - zip 中的每个条目都有自己的标志,表明它是否以及如何压缩,是的。因此,要禁止“压缩 zip”,您需要检查 zip 中的每个条目以查看其中是否有任何被压缩(嗯,您只需要检查每个条目,直到找到已压缩的条目)。在绝大多数情况下,您可能会发现它们都是使用相同的算法压缩的,或者都是未压缩的,但格式允许每个条目的压缩有所不同。【参考方案2】:zip 只是一种容器格式,它可以保存许多可能类型的压缩和未压缩条目。
文件通常是deflated
,这意味着它们是经过压缩的。其他的只是stored
,这意味着它们是未压缩的。
【讨论】:
以上是关于.zip 文件中的文件是不是始终被压缩?的主要内容,如果未能解决你的问题,请参考以下文章