.Net admite dos formatos de compresión: GZip y Deflate. Lo probé y no hubo diferencia en la relación de compresión ni en la velocidad. Entre ellos, WinRAR puede abrir GZip.
Es muy sencillo de utilizar, el siguiente programa comprime una cadena en un archivo:
usando (DeflateStream gzip = new DeflateStream(fs, CompressionMode.Compress))
{
byte[] buf = Codificación.UTF8.GetBytes(this.txbSource.Text);
gzip.Write(buf, 0, buf.Longitud);
gzip.Flush();
}
La descompresión sólo requiere esto:
gzip = new GZipStream(new MemoryStream(buf), CompressionMode.Decompress);
usando (lector StreamReader = nuevo StreamReader (gzip))
{
this.txbTarget.Text = lector.ReadToEnd();
}
Si está descomprimiendo un archivo, simplemente cambie MemoryStream a FileStream.
Por supuesto, es necesario agregar: usando System.IO.Compression;
http://www.cnblogs.com/fujingqiu/archive/2006/10/29/543347.html