C# 如何使用.net 3.5检查zip文件是否损坏

C# 如何使用.net 3.5检查zip文件是否损坏,c#,.net,zipfile,C#,.net,Zipfile,我想在解压缩zip文件之前检查它是否损坏。如果手动打开损坏的zip文件,则会抛出错误。如何在c#中实现,以便在zip损坏时引发异常 注:在.NET4.5中是可能的。但我需要3.5分钟 感谢,这是一个免费的开源库,用于处理.NET语言中的zip文件,它支持一种您想要的方法。您可以选择提供不同级别的保证。基本级别只是检查元数据的一致性。最完整级别将zip文件完全提取到bitbucket中,以验证实际压缩的数据是否已损坏 更新: 表示压缩大小为4字节,从字节18开始。您可以尝试读取它并将其与文件大小进

我想在解压缩zip文件之前检查它是否损坏。如果手动打开损坏的zip文件,则会抛出错误。如何在c#中实现,以便在zip损坏时引发异常

注:在.NET4.5中是可能的。但我需要3.5分钟

感谢

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

更新:

表示压缩大小为4字节,从字节18开始。您可以尝试读取它并将其与文件大小进行比较

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

  • 有些zip文件包含的字节比zip部分多。对于 例如,是否有可执行部分 它们仍然有效

  • 文件可能会损坏,而不会更改其大小。所以,我建议 计算
    CRC
    ,以确保检查 腐败

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

    更新:

    表示压缩大小为4字节,从字节18开始。您可以尝试读取它并将其与文件大小进行比较

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

  • 有些zip文件包含的字节比zip部分多。对于 例如,是否有可执行部分 它们仍然有效

  • 文件可能会损坏,而不会更改其大小。所以,我建议 计算
    CRC
    ,以确保检查 腐败


  • 您可以使用CRC32检查。但您必须拥有已损坏和未损坏的zip文件CRC32。所以你可以很容易地比较它们。谢谢你的回复…我不会有一个未损坏的文件进行比较…我需要检查任何给定的zip文件是否已损坏。你可以使用CRC32检查。但您必须拥有已损坏和未损坏的zip文件CRC32。所以你可以很容易地比较它们。谢谢你的回复…我不会有一个未损坏的文件进行比较…我需要检查任何给定的zip文件是否已损坏感谢你的回复…嗯,我需要一个逻辑,比如在zip文件上执行操作,如果文件损坏,应该引发异常…就像我在手动打开时提到的,它会引发错误…一些复制这种行为的逻辑是我想要的…欢迎您,我更新了我的答案,请检查:)谢谢您的回复…好的,我需要一个逻辑,比如对zip文件执行操作时,如果文件损坏,则应引发异常…正如我在手动打开时提到的,它会引发错误…复制此类行为的一些逻辑是我想要的…欢迎您,我更新了我的答案,请检查:)