gpt4 book ai didi

c# - 找不到中央目录记录的末尾

转载 作者:IT王子 更新时间:2023-10-29 04:09:26 24 4
gpt4 key购买 nike

我正在使用 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();
}

我不明白这个错误。谁能解释一下谢谢先生

最佳答案

问题是 ZipFile 找不到表示存档结束的代码行,所以:

  1. 它不是 .zip 存档。

    • 它可以是.rar 或其他压缩类型。或者正如我在这里怀疑的那样,您正在下载一个自动重定向到 zip 文件的 html 文件
    • 解决方案 - 必须找到正确的存档才能使用此代码。
  2. 存档已损坏。

    • 解决方案 - 存档需要修复。
  3. 存档中有多于 1 个部分。

    • 一个多部分的 zip 文件。
    • 解决方案——解压前读入所有文件。
  4. 正如@ElliotSchmelliot 在评论中指出的那样,该文件可能被隐藏或名称中包含扩展字符。

    • 解决方案 - 检查您的文件属性/权限并验证文件名。

使用您最喜欢的压缩/解压缩实用程序(7-zip、winzip 等)打开文件会告诉您它可能是其中的哪一个。

关于c# - 找不到中央目录记录的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20960403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com