当前位置: 首页 > 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 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • CSS中外联样式表代表的含义
  • golang中接口赋值与方法集
  • HomeBrew常规使用教程
  • input实现文字超出省略号功能
  • JavaScript服务器推送技术之 WebSocket
  • PHP 的 SAPI 是个什么东西
  • SpingCloudBus整合RabbitMQ
  • spring + angular 实现导出excel
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • Web设计流程优化:网页效果图设计新思路
  • 百度小程序遇到的问题
  • 回流、重绘及其优化
  • 人脸识别最新开发经验demo
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 小程序 setData 学问多
  • 小试R空间处理新库sf
  • 由插件封装引出的一丢丢思考
  • 再谈express与koa的对比
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 函数计算新功能-----支持C#函数
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ###项目技术发展史
  • (06)金属布线——为半导体注入生命的连接
  • (c语言)strcpy函数用法
  • (翻译)terry crowley: 写给程序员
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)重识new
  • ***利用Ms05002溢出找“肉鸡
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .net 使用ajax控件后如何调用前端脚本
  • .net 受管制代码
  • .net连接oracle数据库
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)