C# 无法通过WebClient使用Ionic解压文件

C# 无法通过WebClient使用Ionic解压文件,c#,unzip,webclient-download,C#,Unzip,Webclient Download,我正在使用Ionic dll解压zip文件。但它不适用于通过WebClient下载的文件 它抛出以下错误: 无法将D:\test.zip作为zip文件读取 无法读取块-无数据!(位置0x10000002F) 我使用以下代码来解压文件 if (File.Exists(compressedFilePath)) { ZipFile zipFile = new ZipFile(compressedFilePath); zipFile.ExtractAll(directoryPath

我正在使用
Ionic dll
解压zip文件。但它不适用于通过
WebClient
下载的文件

它抛出以下错误:

  • 无法将D:\test.zip作为zip文件读取
  • 无法读取块-无数据!(位置0x10000002F)
我使用以下代码来解压文件

if (File.Exists(compressedFilePath))
{
    ZipFile zipFile = new ZipFile(compressedFilePath);

    zipFile.ExtractAll(directoryPath,ExtractExistingFileAction.OverwriteSilently);
    zipFile.Dispose();
}

请建议下载zip文件并将其解压缩的任何其他选项。

这是不寻常的,但可能是因为内存流和/或位置已设置,请尝试以下操作:

if (File.Exists(compressedFilePath))
{
    ZipFile zipFile = new ZipFile(compressedFilePath);
    zipFile.Flush();
    zipFile.Position = 0;
    zipFile.ExtractAll(directoryPath,ExtractExistingFileAction.OverwriteSilently);
    zipFile.Dispose();
}

我有同样的问题,ZIP文件是正确的。通过以下方式验证:
unzip-t{filename}

进一步挖掘,我发现了一个内部错误:
InnerException={“位置0x004D4914处的错误签名(0x08A90992)}

然后我用WinRar解压,然后再次压缩,确保WinRar选项中的ZIP压缩,瞧!成功了


可能我以前的ZIP文件与完整的ZIP文件不兼容。

它从第一行抛出一个错误(与我提到的问题相同)。它不允许我初始化ZipFile。是否文件下载未完成或已关闭?您是否使用本地创建和测试的zip文件尝试过这个方法,以查看它是否有效?