How to extract zip file using dotnet framework 4.0 without using third party dlls [closed]

好久不见. 提交于 2019-12-04 23:15:41

In .NET framework 4.5 now there is System.IO.Compression.ZipFile.ExtractToDirectory(String, String) method.

I'm not sure if it's still available in VS2010, but in earlier versions J# was included in VS and J# includes the java.util.zip class in the vjslib.dll, and since it's part of VS, it's not a third party DLL so you might be able to do it that way.

Here's a CodeProject article showing how to do this: Zip and Unzip from a C# program using J# runtime

There is no "good" way to do this. You could obviously implement the ZIP algorithm yourself using publicly available information on the ZIP file structure and classes such as DeflateStream (though even this may not work if it is not compressed using the DEFLATE algorithm). There is some information on possible alternatives in this blog post, but the short version is that you will either have to use a third-party library or re-write one yourself.

If this is a situation where you would be able to release the source code in a GPL'd manner, you could copy-paste the code from a project like SharpZipLib into your own, thereby sidestepping the requirement to use the DLL. Other than that, though, why can't you use third-party DLLs?

The .NET framework itself does not (currently) have official support for ZIP files. There are a couple of high-quality third-party free libraries available, and the J# runtime supports it, as others have noted.

I recommend the third-party solution, but if you absolutely can't do that, then there is one other trick: ZipPackage, which is part of WPF. It sort-of supports ZIP files (augmented with extra metadata), and works well enough for reading most ZIP files.

GZipStream is most commonly used for WCF data compression. Dont use that here.

You can try this ZIP library to compress into files:

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

A quick google search turned this up. GZipStream Class MSDN Reference

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!