.NET wrapper for Info-ZIP

The challenge

Many of today's applications require the capability of extracting certain files from a ZIP archive, either onto the hard disk or into memory. A lot of useful zip libraries for .NET applications abound on the Web (SharpZipLib for .NET Framework is a very known one), but I wanted to use the Info-ZIP library as it was always my favorite library for C++ projects.

Info-ZIP is an Open Source version of Phil Katz's "deflate" and "inflate" routines used in his popular file compression program, PKZIP. Info-ZIP code has been incorporated into a number of third-party products as well, both commercial and freeware. It offers two dynamic link libraries: one for zipping, and one for unzipping.

The Info-ZIP DLLs are free to use and distribute, but they are designed to be used in C/C++ projects, so they're not really .NET-friendly. Also, the Info-ZIP package contains almost no documentation showing how to use the Info-ZIP DLLs.

Therefore, I decided to write a small C# wrapper that provides all the required data types and functions in order to give the possibility to work with the Info-ZIP API.

The solution

I built the Info-ZIP .NET wrapper as a C# library named Karna Compression where all the Info-ZIP native types and methods are hidden behind the simple .NET facade. Karna Compression library has two main classes: KarnaZip and KarnaUnzip.

KarnaZip is a class for dealing with zip archives that can add, freshen, or move files in an archive.

KarnaZip.png

KarnaUnzip can be used to extract files from a ZIP archive to the hard drive or memory.

KarnaUnzip.png

Using the code

Creation of zip archive, including password protection and comments, requires just a few lines of code:


See full detail: http://www.codeproject.com/KB/files/infozipdotnet.aspx

Comments

Dominic Finckh said…
Great post which you provide over here really enjoying this. Keep sharing

Popular posts from this blog

Very fast test data generation using exponential INSERT

Basic concept and fundamentals of ASP.NET MVC (Model View Controller) Architecture

MVC Architecture Model In ASP.NET