微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

使用Windows系统caching的.NET HttpRequests

Windows句柄如果控件设置为可见= false(.NET)

在Windows中检测笔记本电脑上的耳机

认的IMarshal实现?

禁用“Foo遇到问题,需要closures”窗口

现在在.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/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐