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文件尝试过这个方法,以查看它是否有效?