无法找到System.IO.Compression中心目录记录的末尾

时间:2016-09-08 12:11:21

标签: c# .net compression system.io.compression

执行以下代码时......我在OpenRead语句中得到一个例外:

  

无法找到中央目录记录的结尾。

然而,我可以通过Windows资源管理器打开zip文件,没有任何问题。

有什么想法吗?

string zipPath = @"c:\testfiles\MMM_C13000_2016M08.zip";
   using (ZipArchive archive = ZipFile.OpenRead(zipPath))
   {
       foreach (ZipArchiveEntry entry in archive.Entries)
       {
       }
   }

1 个答案:

答案 0 :(得分:1)

可以通过两种不同的方式处理zip文件。您可以从头开始按顺序读取,随时处理本地标头和压缩数据。或者您可以使用zip文件末尾的中心目录来查找条目并通过在文件中搜索来处理它们。

看来zip文件损坏或者垃圾邮件最终会阻止一种方法工作,而不是另一种方法。