当前位置: 首页 > 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 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【个人向】《HTTP图解》阅后小结
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • axios 和 cookie 的那些事
  • FastReport在线报表设计器工作原理
  • Github访问慢解决办法
  • HashMap ConcurrentHashMap
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Java方法详解
  • Puppeteer:浏览器控制器
  • Python3爬取英雄联盟英雄皮肤大图
  • 大快搜索数据爬虫技术实例安装教学篇
  • 巧用 TypeScript (一)
  • 深入浅出webpack学习(1)--核心概念
  • 使用agvtool更改app version/build
  • 字符串匹配基础上
  • 阿里云ACE认证学习知识点梳理
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​低代码平台的核心价值与优势
  • #预处理和函数的对比以及条件编译
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (3)nginx 配置(nginx.conf)
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .net core 依赖注入的基本用发
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .net经典笔试题
  • /etc/motd and /etc/issue
  • @Autowired标签与 @Resource标签 的区别
  • @RequestMapping 的作用是什么?
  • [AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存
  • [LuoguP1141]01迷宫
  • [MySQL光速入门]003 留点作业...
  • [Node + Docker] 聊聊怎么把 nodeclub 构建成 Docker 镜像