简体   繁体   中英

C# .Net 3.5 Unzip zip file no 3rd party

I am writing a Winform application in .NET 3.5, and I need unzip a .rar or .zip file.
I found many things, but I didn't found none 3rd party. I couldn't change to .NET 4 or .NET 4.5.

Thank you for your help. Horbert

If you only need to uncompress zip file, You don't need to add an external third party library.

Only you need is Add a reference to Microsoft Shell controls and Automation from the COM tab in the Reference Manager in Visual Studio.

private static void Unzip(String sourceFile,String destination) 
{
    Shell32.ShellClass sc = new Shell32.ShellClass();
    Shell32.Folder SrcFlder = sc.NameSpace(sourceFile);
    Shell32.Folder DestFlder = sc.NameSpace(destination);
    Shell32.FolderItems items = SrcFlder.Items();
    DestFlder.CopyHere(items, 20);          
}

With this, you don't have to distribute any additional dll file with your application .

The .NET framework doesn't support .RAR files, and didn't have support for Zip files until .NET 4.5 .

If you want to support .ZIP (or .RAR) in .NET 3.5, you'll need a third party solution. The DotNetZip library, for example, supports .NET 3.5, and is fully functional for handling of .ZIP files.

There are commercial products which support RAR, such as Chilkat RAR .

How about http://www.codeproject.com/Articles/645214/Compress-Decompress-Zip-Files-w

Not the best solution, but works well if you need basic zip/unzip functionality.

Disclaimer: I'm the author of the article.

Actually, .NET 3.5 does .zip files using the DeflateStream. You have to handle the headers yourself, but PKWare has published the specification and you can create structs and use Streams.

There is no need of third party code…but, you do have to approach it in a more traditional, old school manner. They don't exactly unzip themselves.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM