c# - 无法找到中央目录记录的 System.IO.Compression 结尾

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

在执行以下代码时,我在 OpenRead 语句中遇到异常:

End of Central Directory record could not be found.

不过,我可以通过 Windows 资源管理器毫无问题地打开 zip 文件。

有什么想法吗?

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

最佳答案

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

似乎 zip 文件已损坏或末尾有垃圾,导致一种方法无法正常工作,但另一种方法无效。

关于c# - 无法找到中央目录记录的 System.IO.Compression 结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39390562/

相关文章:

c# - 当我想继承和添加属性时如何处理密封类

javascript - 使用 ./make_bootstrap.sh 部署 Web 应用程序时存在 Sencha 编译问题; ./make_compile.sh

javascript - 将 gzip 与 GWT 集成

c# - 如何确保 MassTransit 中的消息接收顺序

c# - 使用 .NET/C# 从 Google Analytics API 检索数据

c# - SQL Update 命令无法从后面的 c# 代码运行

random - 您可以实现的随机二进制数据的最佳文件压缩是什么?

c# - UWP - 在文件夹中加载图像

c# - 使用 OleDbCommand/OleDbDataAdapter 读取 CSV 文件

.net - Oracle.ManagedDataAccess 到 AWS RDS 数据库 - TCPS : Invalid SSL Wallet (Magic)