DotNetZip es un biblioteca open source que permite comprimir y extraer Archivos Zip. A diferencia de la librería System.IO.Compression, es más versátil y muy fácil de usar. Lo único que se necesita es bajar el archivo binario (DLL, menos de 20k) o el código fuente y agregarlo a nuestra solución.
Soporta el framework 2.0, 3.0 y 3.5.
Ejemplos
Comprimir un directorio (recursivo, incluye subdirectorios):
using (ZipFile zip = new ZipFile(args[0]))
{
zip.AddDirectory(DirectoryName);
zip.Save();
}
Comprimir múltiples Archivos en diferentes directorios:
using System;
using Ionic.Utils.Zip;
public class Example2
{
public static void Main(String[] args)
{
try
{
using (ZipFile zip = new ZipFile("test2.zip"))
{
zip.AddItem("c:\\downloads\\vacaciones01.jpg", "images");
zip.AddItem("c:\\Trabajo\\Specs_Lic2008.pdf", "files\\documents");
zip.AddItem("test2.cs", "files\\text");
zip.Save();
}
}
catch (System.Exception ex1)
{
System.Console.Error.WriteLine("exception: " + ex1);
}
}
}
Extraer todo el contenido de un archivo .ZIP
using (ZipFile zip = ZipFile.Read(zipfile))
{
zip.ExtractAll();
}