6

次のコードを実行すると..OpenReadステートメントで例外が発生します。

セントラル ディレクトリ レコードの最後が見つかりませんでした。

ただし、Windows エクスプローラーを使用して問題なく zip ファイルを開くことができます。

何かご意見は?

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

1 に答える 1

2

2 つの異なる方法で zip ファイルを処理することが可能です。ローカル ヘッダーと圧縮データを処理しながら、最初から順番に読み取ることができます。または、zip ファイルの最後にある中央ディレクトリを使用してエントリを検索し、ファイル内をシークして処理することもできます。

zip ファイルが破損しているか、最後にジャンクが含まれているため、一方の方法は機能しませんが、もう一方の方法は機能しないようです。

于 2016-09-08T13:35:29.490 に答える