开发者

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

开发者 https://www.devze.com 2023-01-10 22:52 出处:网络
Closed. This ques开发者_如何学JAVAtion does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed. This ques开发者_如何学JAVAtion does not meet Stack Overflow guidelines. It is not currently accepting answers.

Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist

Closed 9 years ago.

Improve this question

I'm in a fix. I need to download a zip file from network location and then decompress it on local machine and use the files. The only constraint is that I cannot use any third party dll.


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

0

精彩评论

暂无评论...
验证码 换一张
取 消