Zip library options for the Compact Framework?
-
08-06-2019 - |
Question
My requirements:
- Support .NET Compact Framework 2.0 and Windows Mobile 6.0 devices.
- Only need to unzip the contents to a directory on a storage card. Creation of zip files is not required.
- Must be able to use in corporate/commercial software.
- Can be open source, but not have GPL or other viral license.
I've seen the Xceed Zip for CF library. What other options are there?
Solution
Have a look at #ziplib (www.icsharpcode.com). It's GPL, but you can use it in closed-source, commercial applications. They don't say anything specifically on their page about using it with the Compact Framework, so you'd have to give it a test yourself (that said, it's pure C# without any external dependencies, so the chances are somewhat good that it will work).
OTHER TIPS
As of v1.7, the DotNetZip distribution now includes a version built specifically for the .NET Compact Framework, either v2.0 or v3.5. http://www.codeplex.com/DotNetZip/Release/ProjectReleases.aspx. It is about ~70k DLL. It does zip, unzip, zip editing, passwords, ZIP64, unicode, streams, and more.
DotNetZip is 100% managed code, open source, and free/gratis to use. It's also very simple and easy.
try
{
using (var zip1 = Ionic.Zip.ZipFile.Read(zipToUnpack))
{
foreach (var entry in zip1)
{
entry.Extract(dir, ExtractExistingFileAction.OverwriteSilently);
}
}
}
catch (Exception ex)
{
MessageBox.Show("Exception! " + ex);
}
There's a sample app included in the source distribution that unzips to a storage card.
CF-Unzipper app http://www.freeimagehosting.net/uploads/ce5ad6a964.png
This looks like it may be a good option for you: http://www.codeplex.com/DotNetZip. It seems small, has source and has a very open license (MS-PL).
Looks like what you need is zlibCE from the OpenNETCF foundation. You can get it here: http://opennetcf.com/FreeSoftware/zlibCE/tabid/245/Default.aspx
It's a port of the linux zlib library to CE. At it's core, it's a native dll, but they now also provide a .NET wrapper, along with all the source code.
I've used it in projects before and it performed quite well.
I use the Resco MobileForms toolkit for a variety of functionality: http://www.resco.net/developer/mobileformstoolkit/overview.aspx
It includes a good ZIP library.