当前位置: 首页 > news >正文

.NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。

在解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。

其原因是所解压的文件并非 zip 文件。


本文内容

    • 异常
    • 原因

异常

在解压 Zip 文件时出现异常:

System.IO.InvalidDataException: 找不到中央目录结尾记录。
   在 System.IO.Compression.ZipArchive.ReadEndOfCentralDirectory()
   在 System.IO.Compression.ZipArchive.Init(Stream stream, ZipArchiveMode mode, Boolean leaveOpen)
   在 System.IO.Compression.ZipArchive..ctor(Stream stream, ZipArchiveMode mode, Boolean leaveOpen, Encoding entryNameEncoding)
   在 System.IO.Compression.ZipFile.Open(String archiveFileName, ZipArchiveMode mode, Encoding entryNameEncoding)
   在 System.IO.Compression.ZipFile.ExtractToDirectory(String sourceArchiveFileName, String destinationDirectoryName, Encoding entryNameEncoding)
   在 System.IO.Compression.ZipFile.ExtractToDirectory(String sourceArchiveFileName, String destinationDirectoryName)

原因

如果一个文件并非 zip 文件,那么在解压的时候就会出现此异常。例如,它下载不全,是损坏的;或者,它实际上是一个 rar 文件或者 7z 文件。

验证也非常简单,直接使用其他任何成熟的解压缩工具试着解压以下这个文件就可以。如果其他工具也不能解压,通常说明文件下载不全或者已损坏,或者下载的是一个被重定向了的 html 文件。如果其他工具能够正常解压,说明这可能是其他格式的压缩包,而不是 zip。


我的博客会首发于 https://blog.walterlv.com/,而 CSDN 会从其中精选发布,但是一旦发布了就很少更新。

如果在博客看到有任何不懂的内容,欢迎交流。我搭建了 dotnet 职业技术学院 欢迎大家加入。

知识共享许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名吕毅(包含链接:https://walterlv.blog.csdn.net/),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

相关文章:

  • 为什么实现 .NET 的 ICollection 集合时需要实现 SyncRoot 属性?如何正确实现这个属性?
  • 为什么不应该公开用来同步的加锁对象?为什么不应该 lock(this)/lock(string) 或者 lock 任何非私有对象?
  • WPF 中如何创建忽略 DPI 属性的图片
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • Win32 方法 CreateFile 中选择合适的文件打开模式(CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXI
  • 使用 Kestrel 为你的 ASP.NET Core 服务添加 https 支持
  • 三种方法为 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx)
  • 为 ASP.NET Core 程序制作 URL 的 301/302 跳转
  • 使用 Frp 为你的 Web 服务添加 https 支持
  • 全民 https!使用 FreeSSL 申请免费的 https 证书
  • 如何设置 ASP.NET Core 程序监听的 IP 和端口
  • 收集的 Linux VPS 在线重装系统脚本
  • Linux 系统根目录下的文件夹
  • 修复 Windows 10 设置界面里面混乱的语言翻译
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .pyc 想到的一些问题
  • angular组件开发
  • canvas 五子棋游戏
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • JavaScript创建对象的四种方式
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • JS学习笔记——闭包
  • Lucene解析 - 基本概念
  • node 版本过低
  • rabbitmq延迟消息示例
  • React组件设计模式(一)
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 检测对象或数组
  • 老板让我十分钟上手nx-admin
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 如何优雅地使用 Sublime Text
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​Java并发新构件之Exchanger
  • ​低代码平台的核心价值与优势
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • (13):Silverlight 2 数据与通信之WebRequest
  • (3)(3.5) 遥测无线电区域条例
  • (4)Elastix图像配准:3D图像
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (六)激光线扫描-三维重建
  • (论文阅读11/100)Fast R-CNN
  • (未解决)macOS matplotlib 中文是方框
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET构架之我见
  • .net解析传过来的xml_DOM4J解析XML文件
  • .NET框架类在ASP.NET中的使用(2) ——QA