这就是我所拥有的:
byte[] buff = new byte[1];
byte[] buffer = { 10, 20, 30, 40 };
Stream data = new MemoryStream();
data.Write(buffer, 2, 2);
data.Position = 0;
InflaterInputStream _inflater;
_inflater = new InflaterInputStream(data);
int count = _inflater.Read(buff, 0, 1);
抛出SharpZipBaseException:Header校验和非法和意外的EOF异常,而data.Position最后为2。
谁能告诉我可能是什么问题以及如何解决?提前谢谢。
答案 0 :(得分:4)
InflaterInputStream
期望数据采用“deflate”格式。你只写了两个字节的数据,这不是一个有效的“deflate”文件。
这样说 - 如果你给WinZip一些两个字节的随机blob并要求它解压缩,那你期望它做什么?
此处的错误消息非常清楚:您的文件不够长(意外的EOF异常)并以错误的方式启动文件格式(Header校验和非法)。如有疑问,请始终查看错误消息并考虑为什么您将收到该错误。