如何使用.net 3.5

时间:2015-07-01 20:37:36

标签: c# .net zipfile

我想在解压缩之前检查zip文件是否已损坏。如果手动打开损坏的zip文件,则会引发错误。如何在c#中完成,这样如果zip被破坏,将抛出异常。

P.s在.net 4.5中是可能的。但我需要它在3.5

由于

1 个答案:

答案 0 :(得分:4)

DotNetZip是一个免费的开源库,用于处理.NET语言的zip文件,支持CheckZip()方法,可以满足您的需要。您可以选择各种级别的保证。基本级别只检查元数据的一致性。最完整的级别将zip文件完全提取到bitbucket中,以验证实际的压缩数据是否已损坏。

更新:

Section 4.3.7 of this page表示压缩大小是从字节18开始的4个字节。您可以尝试读取它并将其与文件大小进行比较。

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

  1. 某些zip文件包含的字节数多于zip部分。对于 例如,self-extracting archives还有一个可执行部分 它们仍然是有效的拉链。

  2. 文件可能会损坏而不会更改其大小。所以,我建议 为保证的检查方法计算CRC 损坏。