当前位置:  开发笔记 > 编程语言 > 正文

在.NET中创建ZIP存档的最佳/最简单方法是什么?

如何解决《在.NET中创建ZIP存档的最佳/最简单方法是什么?》经验,为你挑选了4个好方法。

你认为哪种方法是"最好的".

使用System.IO.Packaging命名空间?

使用与Shell的互操作?

.NET的第三方库?

与开源非托管DLL互操作?

[我可以针对框架3.5; 最好=最容易设计,实施和维护.

我最感兴趣的是你认为所选方法最好的原因.



1> Greg Dean..:

我一直使用SharpZipLib

忘了原因部分:主要是因为它已经存在了很长时间.它有详细记录,并具有直观的API.如果你是那种类型的东西,它还是开源的.


记录完好?我发现没有任何可用的文档,你能指出我正确的方向吗?

2> 小智..:

我发现DotNetZip库是使用zip文件的最简单方法.SharpZipLib是一个功能更强大,更灵活的解决方案.



3> Cheeso..:

DotNetZip使用起来非常简单.我喜欢它,因为它是完全管理的 - 不需要shell交互.编程模型比shell更简单,更清晰.它也比SharpZipLib以及.NET 3.0中添加的Packaging类更简单.它是免费的,小型的,积极维护的.

它比一张海报提供的J#选项要好得多 - J#是一个巨大的运行时间和巨大的药丸吞下来获得ZIP支持.此外,J#支持正在停止.在J#上引入新依赖项可能不是一个好主意.

DotNetZip的示例代码:

  try
  {
      using (ZipFile zip = new ZipFile(args[0], System.Console.Out))
      {
          zip.AddDirectory(args[1]); // recurses subdirectories
          zip.Save();
      }
  }
  catch (System.Exception ex1)
  {
      System.Console.Error.WriteLine("exception: " + ex1);
  }

DotNetZip适用于.NET v2.0,3.0,3.5以及Compact Framework v2.0和3.5.它可以处理ZIP文件,Unicode文件名,注释,密码.它有ZIP64以及自解压档案.它很快.试试吧.



4> Sheridan..:

我意识到这是一个古老的问题,但我只是想我会添加一个更新的答案.如果您使用的是.NET 4.5,则可以使用新的内置ZipFile类以编程方式将多个文件轻松保存到zip文件夹中.

首先,您需要将文件准备到新文件夹(Directory.CreateDirectory,File.Move)中,然后您只需使用ZipFile.CreateFromDirectory方法(从链接页面改编):

string filePathOfNewFolder = @"c:\example\start";
string zipFilePath = @"c:\example\result.zip";

ZipFile.CreateFromDirectory(filePathOfNewFolder, zipFilePath);

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有