Ejemplos rápidos: Como comprimir un archivo con GZipStream

El espacio de nombres System.IO.Compression dispone de una class GZipStream que se puede utilizar para comprimir archivos de forma rápida.

Este ejemplo crear un archivo .Zip:

string carpeta = @"C:\";
string archivo = "texto.txt";

using (FileStream fOrigen = File.OpenRead(Path.Combine(path, archivo)))
{
    using (FileStream fDestino = File.Create(Path.Combine(path, archivo + ".zip")))
    {

        byte[] buffer = new byte[fOrigen.Length];
        fOrigen.Read(buffer, 0, buffer.Length);

        using (GZipStream output = new GZipStream(fDestino, CompressionMode.Compress))
        {
            output.Write(buffer, 0, buffer.Length);
        }
    }
}

Codigo VB (conversión por http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx)

Dim carpeta As String = "C:\"
Dim archivo As String = "texto.txt"

Using fOrigen As FileStream = File.OpenRead(Path.Combine(path, archivo))
    Using fDestino As FileStream = File.Create(Path.Combine(path, archivo + ".zip"))
        Dim buffer As Byte() = New Byte(fOrigen.Length - 1)
        fOrigen.Read(buffer, 0, buffer.Length)
        Using output As New GZipStream(fDestino, CompressionMode.Compress)
            output.Write(buffer, 0, buffer.Length)
        End Using
    End Using
End Using

1 Comment

  • Dim carpeta As String = "C:\"
    Dim archivo As String = "texto.txt"

    Using fOrigen As FileStream = File.OpenRead(Path.Combine(path, archivo))
    Using fDestino As FileStream = File.Create(Path.Combine(path, archivo + ".zip"))

    Dim buffer As Byte() = New Byte(fOrigen.Length - 1) {}
    fOrigen.Read(buffer, 0, buffer.Length)

    Using output As New GZipStream(fDestino, CompressionMode.Compress)
    output.Write(buffer, 0, buffer.Length)
    End Using
    End Using
    End Using

Comments have been disabled for this content.