Tecnología

Inicio

Cómo comprimir archivos Usando SharpZipLib

SharpZipLib es una biblioteca de compresión de archivos para C # y otros lenguajes de programación .NET, que proporciona funciones para el manejo de ZIP, GZIP, TAR y formatos bzip2. La biblioteca cuenta con una interfaz muy sencilla, lo que le permite comprimir un archivo con sólo unas pocas llamadas a funciones. Después de construir el resto de su programa - suponiendo que su proyecto es algo más que una línea de comandos comprimir utilidad - incluir la librería SharpZipLib y crear una función de comprimir, que luego se puede llamar desde su código en otros lugares.

Instrucciones

1 Cree el encabezado de la función. Debe ser algo como esto:

Zip pública static void (cadena ArchivoDeEntrada, cadena archivoSalida)

Esto define nombre y los parámetros de la función. Suponiendo que se utiliza el código de seguridad exactamente como está escrito, usted será capaz de llamar a la función, la compresión de un archivo específico en una postal, como esto:

Postal ( "imagen.jpg", "image.zip");

2 Comienza el cuerpo de la función, la declaración de variables necesarias y las instancias de objetos. Debe ser algo como esto:

{

FileStream fileStreamIn = new FileStream

(ArchivoDeEntrada, FileMode.Open, FileAccess.Read);

FileStream fileStreamOut = new FileStream

(ArchivoSalida, FileMode.Create, FileAccess.Write);

ZipOutputStream zipStreamOut = new ZipOutputStream (fileStreamOut);

byte buffer [] = new byte;

ZipEntry entrada = new ZipEntry (Path.GetFileName (ArchivoDeEntrada));

zipOutStream.PutNextEntry (entrada);

int size;

Esto crea dos FileStreams para los archivos de entrada y de salida, y luego un ZipOutputStream basa en el FileStream salida que acaba de declarar. Esto es seguido por unas pocas variables para los números de manipulación de la carne de la función que viene a continuación, y un par para almacenar la ruta del archivo de salida.

3 Introduzca la carne de la función - un "do ... while" que se lee en los datos y lo comprime:

do

{

size = fileStreamIn.Read (buffer, 0, buffer.Length);

zipStreamOut.Write (buffer, 0, tamaño);

} While (tamaño> 0);

Esto le paso a través del archivo, un byte a la vez, la alimentación de los datos a la función de "escritura" de zipStreamOut. El proceso se repetirá hasta que el final del archivo se alcanza y se ha completado la comprimir.

4 Cierre la cremallera y FileStreams, y terminar la función, recoger todo lo que arriba:

zipStreamOut.Close();

fileStreamOut.Close ();

fileStreamIn.Close ();

}

La función se ha completado y se puede utilizar en su programa como desee.