如何使用dotnet框架4.0提取zip文件,而无需使用第三方dll

我正在修复。 我需要从networking位置下载一个zip文件,然后在本地机器上解压缩并使用这些文件。 唯一的限制是我不能使用任何第三方的DLL。

Solutions Collecting From Web of "如何使用dotnet框架4.0提取zip文件,而无需使用第三方dll"

现在在.NET Framework 4.5中有System.IO.Compression.ZipFile.ExtractToDirectory(String, String)方法。

我不确定它是否仍然在VS2010中可用,但在早期版本中,J#包含在VS中,J#在vjslib.dll中包含java.util.zip类,由于它是VS的一部分,因此它不是第三方DLL所以你可以这样做。

这里是一个CodeProject文章,展示了如何做到这一点: 从C#程序使用J#运行时压缩和解压缩

没有“好”的方法来做到这一点。 你可以使用ZIP文件结构和类如DeflateStream的公开可用的信息来自己实现ZIP算法(尽管如果它没有使用DEFLATE算法进行压缩,那么即使这样也不行)。 在这个博客文章中有一些可能的备选方案的信息 ,但简短的版本是,你将不得不使用第三方库或自己重写。

如果这种情况下你可以用GPL的方式发布源代码,你可以将代码从像SharpZipLib这样的项目复制粘贴到你自己的代码中,从而避免使用DLL的需求。 除此之外,为什么不能使用第三方DLL?

.NET框架本身没有(当前)对ZIP文件的官方支持。 有一些高质量的第三方免费库可用,J#运行时支持它,正如其他人所指出的。

我推荐第三方解决方案,但如果你绝对不能这样做,那么还有另一个诀窍: ZipPackage ,它是WPF的一部分。 它支持ZIP文件(增加了额外的元数据),并且可以读取大多数 ZIP文件。

快速谷歌搜索转向了这一点。 GZipStream类MSDN参考

GZipStream最常用于WCF数据压缩。 不要在这里使用。

你可以试试这个ZIP库压缩成文件:

http://www.icsharpcode.net/opensource/sharpziplib/