.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/),不得用於商業目的,基於本文修改後的作品務必以相同的許可發佈。如有任何疑問,請與我聯繫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章