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

Posted

技术标签:

【中文标题】如何在 .net framework 4.0 中压缩文件夹【英文标题】:How to Zip A folder in .net framework 4.0 【发布时间】:2017-04-20 05:32:17 【问题描述】:

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

【问题讨论】:

【参考方案1】:

实际上,您也可以在 .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 中,但由于某种原因没有自动引用。


添加对项目的引用:

    右击Solution Explorer中的项目节点。

    (图片来源:another Stack Overflow question)

    Add Reference...

    转到Browse 选项卡并找到上述文件。

How to: Add or Remove References By Using the Add Reference Dialog Box

【讨论】:

您好,请详细说明在哪里添加参考文献 @charu :请参阅编辑。如果我的回答解决了您的问题,请按帖子左侧的勾号/复选标记将其标记为“已接受”。欲了解更多信息,请参阅:How does accepting an answer work? 遵循此过程将使程序依赖于 .Net 4.5,因为这是引入 System.IO.Compr‌​‌​‌​ession.FileSyste‌​m.dll 的次要版本。在最新的系统中,这应该不是问题,但该程序并不是严格针对最低 .Net 4.0 开发的。要进行良好的讨论,请参阅:.NET Versioning and Multi-Targeting - .NET 4.5 is an in-place upgrade to .NET 4.0。 @charu,您可能想了解它是如何与您的标准一起工作的。 VisualVincent,4.5 没有单独的文件夹 - 这就是他们将其作为 4.0 的就地替代品的意思。有关更多信息,请参阅:Where is the .NET Framework 4.5 directory?。另外,复制本地选项/解决方案是我希望您在没有我说明的情况下实现并添加到您的答案中的。 :) 没关系,但您指向的文件夹引用是 GAC 副本;安装目录为:`C:\Windows\Microsoft.NET\Framework\v4.0.30319`。 @charu : TnTinMn 是对的,不幸的是,您需要安装 .NET 4.5 或更高版本才能正常工作。在带有 .NET 4.0 的 XP 机器上运行它会抛出 TypeLoadException,因为它无法加载 一个 System.IO.Compression 的枚举。遗憾的是我还没有找到解决方法,因此如果没有安装 .NET 4.5 或更高版本,除了使用第三方库之外似乎没有其他解决方案。

以上是关于如何在 .net framework 4.0 中压缩文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何在win10上安装.net framework 4.0

已安装 4.6 时如何满足 .Net Framework 4.0 要求

.NET Framework 4.0 安装失败

在 .NET Framework 4.0 的 AppDomain 中运行 codeCom 代码

net framework 4.0安装不了 拒绝访问

net framework 4.0 能运行在啥系统上