我正在使用ICSharpCode.SharpZipLib.Zip压缩文件和文件夹,并使用response.Binary写入将其作为内存流传递。

这是我的代码:

MemoryStream df= new MemoryStream();
ZipOutputStream s = new ZipOutputStream(df);
s.SetLevel(9);

byte[] data = (byte[])file.OpenBinary();
s.Write(data, 0, data.Length);
s.Finish();

s.Close();
byte[] outBuf = df.GetBuffer();
Response.Expires = 0;
Response.Buffer = true;
Response.ClearContent();
Response.AddHeader("content-disposition", "inline; filename="out.zip");
Response.ContentType = "application/zip";
Response.BinaryWrite(outBuf);
HttpContext.Current.ApplicationInstance.CompleteRequest();


当我尝试打开out.zip文件时,它表示zip文件已损坏或
损坏,并且crc值显示为000000。

有什么解决方案?
为什么会发生此错误?

最佳答案

我猜,您应该致电:

s.Flush();
df.Flush();


在您调用df.GetBuffer()之前

关于c# - ICSharpCode.SharpZipLib.Zip crc32,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5461207/

10-17 01:51