2016-08-16 21 views

回答

2

解决方案:使用ZipFile.OpenRead()方法打开zip存档并列出所有条目;如果没有异常发生,那么存档是有效的。
例如:

public static bool IsZipValid(string path) 
    { 
     try 
     { 
      using (var zipFile = ZipFile.OpenRead(path)) 
      { 
       var entries = zipFile.Entries; 
       return true; 
      } 
     } 
     catch (InvalidDataException) 
     { 
      return false; 
     } 
    } 
2

使用“ExtractToDirectory”提取ZIP文件并在“InvalidDataException”中写入无效ZIP文件的代码。

关于 “InvalidDataException” Exeption: - 由sourceArchiveFileName指定

归档不是有效的zip压缩包。

- 或 -

归档项未找到或已损坏。

- 或 -

一个存档条目是通过使用不支持的压缩方法压缩。

 try 
     { 
      string startPath = @"c:\example\start"; 
      string zipPath = @"c:\example\result.zip"; 
      string extractPath = @"c:\example\extract"; 

      ZipFile.CreateFromDirectory(startPath, zipPath); 

      ZipFile.ExtractToDirectory(zipPath, extractPath); 
     } 
     catch (InvalidDataException ex) 
     { 
      //Handle invalid zip here 
     }