C#プログラムを使用してzipファイルをダウンロードしていますが、エラーが発生します
at System.IO.Compression.ZipArchive.ReadEndOfCentralDirectory()
at System.IO.Compression.ZipArchive.Init(Stream stream, ZipArchiveMode mode,
Boolean leaveOpen)
at System.IO.Compression.ZipArchive..ctor(Stream stream, ZipArchiveMode mode,
Boolean leaveOpen, Encoding entryNameEncoding)
at System.IO.Compression.ZipFile.Open(String archiveFileName, ZipArchiveMode
mode, Encoding entryNameEncoding)
at System.IO.Compression.ZipFile.ExtractToDirectory(String sourceArchiveFileN
ame, String destinationDirectoryName, Encoding entryNameEncoding)
at System.IO.Compression.ZipFile.ExtractToDirectory(String sourceArchiveFileN
ame, String destinationDirectoryName)
プログラムはこちら
response = (HttpWebResponse)request.GetResponse();
Stream ReceiveStream = response.GetResponseStream();
byte[] buffer = new byte[1024];
FileStream outFile = new FileStream(zipFilePath, FileMode.Create);
int bytesRead;
while ((bytesRead = ReceiveStream.Read(buffer, 0, buffer.Length)) != 0)
outFile.Write(buffer, 0, bytesRead);
outFile.Close();
response.Close();
try
{
ZipFile.ExtractToDirectory(zipFilePath, destnDirectoryName);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
Console.ReadLine();
}
エラーが理解できません。誰か説明してもらえますか? ありがとう、MR
ベストアンサー1
問題は、ZipFile
アーカイブの終了を通知するコード行が見つからないことです。そのため、次のいずれかが発生します。
これは .zip アーカイブではありません。
- .rarやその他の圧縮形式かもしれません。あるいは、私がここで疑っているように、自動的に zip ファイルにリダイレクトされる HTML ファイルをダウンロードする。
- 解決策 - このコードを使用するには正しいアーカイブを見つける必要があります。
アーカイブが破損しています。
- 解決策 - アーカイブを修復する必要があります。
アーカイブには複数の部分があります。
- 複数の部分からなる zip ファイル。
- 解決策 - 解凍する前にすべてのファイルを読み込みます。
@ElliotSchmelliot がコメントで指摘しているように、ファイルは非表示になっているか、名前に拡張文字が含まれている可能性があります。
- 解決策 - ファイルの属性/権限を確認し、ファイル名を確認します。
お気に入りの zip/unzip ユーティリティ (7-zip、winzip など) を使用してファイルを開くと、それがどの形式であるかがわかります。