无法通过WebClient使用Ionic解压缩zip文件

本文关键字:Ionic 解压缩 zip 文件 使用 WebClient | 更新日期: 2023-09-27 18:26:34

我正在使用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文件并解压缩的任何其他选项。

无法通过WebClient使用Ionic解压缩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 = {" Bad signature (0x08A90992) at position 0x004D4914"}

然后我用WinRar解压缩它,并再次压缩它,确保在WinRar选项中进行ZIP压缩,瞧!成功了!!!

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