无法通过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文件并解压缩的任何其他选项。
这很不寻常,但可能是因为已经设置了内存流和/或位置,请尝试以下操作:
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文件不完全兼容