如何快速检查zip文件是否已损坏?

thu*_*tta 11 compression zip unzip corruption

有没有人有任何想法如何务实地快速检查zip文件是否已根据文件大小损坏?理想情况下,检查zip是否已损坏的最佳方法是进行CRC校验,但这可能需要很长时间,尤其是在存在大量zip文件的情况下.我很高兴能够快速执行文件大小或标题检查.

提前致谢.

Azi*_*zSM 7

使用zip -T测试文件损坏或不。示例损坏的文件如下所示:

 zip -T filename.zip
        zip warning: missing end signature--probably not a zip file (did you
        zip warning: remember to use binary mode when you transferred it?)
        zip warning: (if you are trying to read a damaged archive try -F)

zip error: Zip file structure invalid (filename.zip)
Run Code Online (Sandbox Code Playgroud)


小智 6

这可能是一个迟到的答案,但如果您使用 Windows 命令行,并且安装了 7zip,只需将其添加到您的系统 PATH 并运行以下命令:

7z t file.zip


img*_*x64 5

本页的第 4.3.7 节说压缩的大小是从字节 18 开始的 4 个字节。您可以尝试阅读它并将其与文件的大小进行比较。

但是,我认为检查 zip 文件是否损坏几乎没有用,原因有两个:

  1. 一些 zip 文件包含比 zip 部分更多的字节。例如,自解压档案有一个可执行部分,但它们仍然是有效的 zip。
  2. 文件可以在不改变其大小的情况下损坏。

因此,我建议计算 CRC 以确保检查损坏的方法。


Che*_*eso 5

DotNetZip,一个免费的开源库,用于在.NET语言处理zip文件,支持CheckZip()方法,你想要做什么.您可以选择各种级别的保证.基本级别只检查元数据的一致性.最完整的水平确实zip文件的完整提取到到位桶,以验证实际的压缩数据不被破坏.