我正在解决问题。我需要从网络位置下载一个zip文件,然后在本地计算机上解压缩并使用这些文件。唯一的限制是我不能使用任何第三方DLL。
答案 0 :(得分:9)
在.NET framework 4.5中,现在有System.IO.Compression.ZipFile.ExtractToDirectory(String, String)
方法。
答案 1 :(得分:4)
我不确定它是否仍然可以在VS2010中使用,但在早期版本中,J#包含在VS中,而J#包含vjslib.dll中的java.util.zip
类,并且因为它是VS的一部分,所以它不是第三方DLL,这样你就可以这样做。
以下是CodeProject文章,展示了如何执行此操作:Zip and Unzip from a C# program using J# runtime
答案 2 :(得分:3)
没有“好”的方法来做到这一点。显然,您可以使用ZIP文件结构和类information等公共可用的DeflateStream来自己实现ZIP算法(尽管如果不使用DEFLATE算法压缩它可能也行不通)。在this blog post中有一些关于可能的替代方案的信息,但简短的版本是您要么必须使用第三方库,要么自己重新编写一个。
如果您能够以GPL方式发布源代码,则可以将代码从SharpZipLib复制粘贴到您自己的项目中,从而避免将需求转移到您自己的使用DLL。除此之外,为什么你不能使用第三方DLL?
答案 3 :(得分:2)
.NET框架本身(目前)没有对ZIP文件的官方支持。有一些高质量的第三方免费库可供使用,而J#运行时支持它,正如其他人所指出的那样。
我推荐第三方解决方案,但如果你绝对不能这样做,那么还有另一个技巧:ZipPackage,它是WPF的一部分。它支持ZIP文件(增加了额外的元数据),并且可以很好地读取大多数 ZIP文件。
答案 4 :(得分:0)
快速谷歌搜索将其提升了。 GZipStream Class MSDN Reference
答案 5 :(得分:0)
GZipStream最常用于WCF数据压缩。不要在这里使用它。
您可以尝试将此ZIP库压缩为文件: