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

cha*_*aru 7 .net vb.net zip .net-4.0 zipfile

如何使用 vb.net 和 .net framework 4.0 压缩文件夹。我可以通过使用框架 4.5 中提供的 ZipFile 类来做到这一点,但我只需要使用框架 4.0,也不需要第三方库。请帮忙

Vis*_*ent 8

实际上,您也可以ZipFile在 .NET 4.0 中使用该类。您只需添加对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
Run Code Online (Sandbox Code Playgroud)

如您所见,它位于“v4.0”文件夹中,因此它存在于 .NET 4.0 中,但由于某种原因未自动引用。


添加对项目的引用:

  1. 右键单击Solution Explorer.

    解决方案资源管理器

    (图片来源:另一个堆栈溢出问题

  2. Add Reference...

  3. 转到Browse选项卡并找到上面提到的文件。

如何:使用“添加引用”对话框添加或删除引用

  • 遵循此过程将使程序依赖于 .Net 4.5,因为这是引入了“System.IO.Compr‌ ‌ ‌ ession.FileSyste‌ m.dll”的次要版本。在最新的系统中,这应该不是问题,但该程序并非严格针对最低 .Net 4.0 开发。有关详细讨论,请参阅:[.NET 版本控制和多目标 - .NET 4.5 是到 .NET 4.0 的就地升级](https://www.hanselman.com/blog/NETVersioningAndMultiTargetingNET45IsAnInplaceUpgradeToNET40.aspx)。@charu您可能想访问它如何与您的标准配合使用。 (3认同)
  • VisualVincent,4.5 没有单独的文件夹 - 这就是他们所说的 4.0 的就地替代品。有关更多信息,请参阅:[.NET Framework 4.5 目录在哪里?](http://stackoverflow.com/questions/12070518/where-is-the-net-framework-4-5-directory#12070551)。另外,我希望您能够意识到复制本地选项/解决方案,并将其添加到您的答案中,而无需我说明。:) 这并不重要,但您指向的文件夹引用是 GAC 副本;安装目录为:“C:\Windows\Microsoft.NET\Framework\v4.0.30319\”。 (3认同)
  • @charu:TnTinMn 是对的,不幸的是您需要安装 .NET 4.5 或更高版本才能正常工作。在装有 .NET 4.0 的 XP 计算机上运行此程序会引发“TypeLoadException”,因为它无法加载“System.IO.Compression”的“一个”枚举。遗憾的是,我还没有找到解决方法,因此如果没有安装 .NET 4.5 或更高版本,除了使用第三方库之外似乎没有其他解决方案。 (3认同)