如何在.net framework 4.0中压缩文件夹

7

如何使用vb.net和.net framework 4.0压缩文件夹。我能够通过使用ZipFile类在framework 4.5中实现这一点,但我需要仅使用framework 4.0并且不使用第三方库。请帮忙。

1个回答

8

实际上,你也可以在.NET 4.0中使用ZipFile类。你只需添加对System.IO.Compression.FileSystem.dll文件的引用,该文件位于:

%SystemRoot%\Microsoft.NET\assembly\GAC_MSIL\System.IO.Compr‌​‌​‌​ession.FileSyste‌​m\‌​v4‌​.0_4.0.0.0__‌​b77a‌​5c56‌​1934e089‌​\Syste‌​m.IO.C‌​ompr‌​ession.F‌​ileSyste‌​‌​m.dll

正如您所看到的,它位于“v4.0”文件夹中,因此存在于.NET 4.0中,但由于某些原因没有自动引用。
要向项目添加引用:
  1. 右键单击 Solution Explorer 中的项目节点。
  2. Solution Explorer

    (图片来源:另一个 Stack Overflow 问题)

  3. 按下 Add Reference...
  4. 转到 Browse 选项卡并找到上述文件。
如何使用“Add Reference”对话框添加或删除引用

你好,请问您能详细说明在哪里添加引用吗? - charu
@charu:很高兴我能帮到你!欢迎来到 Stack Overflow 并祝你好运! - Visual Vincent
3
按照此过程进行将使程序依赖于.Net 4.5,因为这是引入 System.IO.Compr‌​‌​‌​ession.FileSystem.dll 的次要版本。在更新的系统中,这应该不是问题,但该程序并非严格针对最低 .Net 4.0 版本开发。有关详细讨论,请参见:.NET版本控制和多目标 - .NET 4.5 是 .NET 4.0 的就地升级。@charu 您可能想要根据您的标准来访问此操作方式。 - TnTinMn
3
VisualVincent,针对4.5版本,没有单独的文件夹 - 这就是所谓的它作为4.0的就地替换。更多信息请参见:Where is the .NET Framework 4.5 directory?。此外,Copy-Local选项/解决方案是我希望您能意识到并添加到您的答案中,而无需我说明。 :) 虽然这并不重要,但您指向的文件夹引用是GAC副本;安装目录是:C:\Windows\Microsoft.NET\Framework\v4.0.30319\ - TnTinMn
3
@charu : TnTinMn说得对,不幸的是,您需要安装.NET 4.5或更高版本才能使其正常工作。在安装了.NET 4.0的XP机器上运行此程序会抛出TypeLoadException异常,因为它无法加载System.IO.Compression枚举中的一个。遗憾的是,我还没有找到解决方法,因此如果未安装.NET 4.5或更高版本,则似乎除使用第三方库外没有其他解决方案。 - Visual Vincent
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接