ICSharpCode.SharpZipLib 压缩后 用winrar解压的问题

mazheng36703 2012-11-05 08:01:13
用ICSharpCode.SharpZipLib压缩多个文件,然后用winrar打开报“这个压缩文件格式未知或者数据已经被损坏”错误,但用360 和7zip都能打开,大神们求解啊
 internal static void DownloadForPressVer2(List<Model.FileEntity> files, string filename)
{
MemoryStream ms = new MemoryStream();
ZipOutputStream zipOutput = new ZipOutputStream(ms);
zipOutput.UseZip64 = UseZip64.Off;
Crc32 oCrc32 = new Crc32();
try
{
foreach (var file in files)
{
if (!File.Exists(HttpContext.Current.Server.MapPath(file.FilePath)))
{
continue;
}
byte[] buffer = null;
string currentFileName = file.FileName;
ZipEntry oZipEntry = new ZipEntry(currentFileName);
oZipEntry.CompressionMethod = CompressionMethod.Deflated;
using (FileStream fs = new FileStream(HttpContext.Current.Server.MapPath(file.FilePath), FileMode.Open, FileAccess.Read))
{
buffer = new byte[fs.Length];
fs.Read(buffer, 0, (int) fs.Length);
}
oCrc32.Reset();
oCrc32.Update(buffer);
oZipEntry.Crc = oCrc32.Value;
zipOutput.PutNextEntry(oZipEntry);
zipOutput.Write(buffer, 0, buffer.Length);
}
}
catch (Exception)
{
throw;
}
finally
{
zipOutput.Finish();
zipOutput.Close();
}
byte[] bytes = ms.GetBuffer();
ms.Dispose();
DownloadFile(bytes, filename + ".zip");
}
...全文
445 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kurtjie 2012-11-06
  • 打赏
  • 举报
回复
有没有试过用最新版本的控件?
jshi123 2012-11-06
  • 打赏
  • 举报
回复
代码看不出什么错。我用winrar 3.92和SharpZipLib 0.86试下来是好的。
mazheng36703 2012-11-06
  • 打赏
  • 举报
回复
引用 1 楼 kurtjie 的回复:
有没有试过用最新版本的控件?
就是在官网下的
mazheng36703 2012-11-06
  • 打赏
  • 举报
回复
引用 3 楼 jshi123 的回复:
代码看不出什么错。我用winrar 3.92和SharpZipLib 0.86试下来是好的。
哎~ 还是报错算了吧 不行换一种方式做吧 都谢谢了

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧