Foros del Web » Programación para mayores de 30 ;) » .NET »

Comprimir archivos C# NET 1.1

Estas en el tema de Comprimir archivos C# NET 1.1 en el foro de .NET en Foros del Web. Hola a todos! Estoy aprendiendo a programar en C#, y tengo que realizar un programilla que comprima todos los archivos que contenga una carpeta. La ...
  #1 (permalink)  
Antiguo 13/08/2009, 09:27
 
Fecha de Ingreso: agosto-2009
Mensajes: 1
Antigüedad: 14 años, 8 meses
Puntos: 0
Comprimir archivos C# NET 1.1

Hola a todos!

Estoy aprendiendo a programar en C#, y tengo que realizar un programilla que comprima todos los archivos que contenga una carpeta.

La cosa parece simple, pero resulta que tengo el Visual Studio 2003 que utiliza las librerías del FrameWork .Net 1.1, con lo que no tiene librerías para crear archivos zip.

Navegando por internet he encontrado, que hay dos librerías (.dll) para poder utilizar zips, pero la que es más fácil de usar, DotNetZip, me da error al intentar usarla, me indica que no es archivo dll o com.

La otra librería (SharpZipLib), si me la acepta pero no acabo de entender como funciona. He encontrado algun ejemplo por internet pero me dan error, explica más o menos como hacerlo funcionar, pero al no saber muy bién como va... pues no me aclaro la verdad.

¿Alguien puede ayudarme?

Gracias y saludos!
  #2 (permalink)  
Antiguo 13/08/2009, 17:02
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Comprimir archivos C# NET 1.1

Hola

SharpZipLib es muy buena y funciona en vs 2003, acá tenes un ejemplo que está en las faq's de este foro:
http://www.forosdelweb.com/attachmen...et-asp-net.zip

Como vos decis no son muy intuitivas la forma de usarla, pero la librería tiene una forma facil de poder usarla, yo supe encontrar esto en un sitio que me ayudo muy bien:
Cita:
Jugando un poco con la librería y el Examinador de Objetos de VS 2005, me encuentro con una clase llamada FastZip. Hmmmm. Pues sí, es lo que parece: una clase wrapper para facilitar la compresión y descompresión de archivos mediante SharpZipLib. Por ejemplo, para descomprimir un fichero es tan simple como esto:

private static void DescomprimirZipFast(string sFile)
{
FastZip fZip = new FastZip();
fZip.ExtractZip(sFile, @"C:\Temp", "");
}
Colorized by: CarlosAg.CodeColorizer
Los tres argumentos del método ExtractZip son de tipo string, y son el nombre del fichero ZIP a extraer, la ruta de destino para los ficheros extraídos y una máscara para el tipo de ficheros que debemos extraer. Ojo, no vale una máscara al estilo "*.txt", debe hacerse mediante una expresión regular. Si queremos incluir todos los archivos existentes en el directorio, debemos dejar este último parámetro como null o como cadena vacía "".

Y para comprimir:

private static void ComprimirZipFast()
{
FastZip fZip = new FastZip();
fZip.CreateZip(@"C:\Temp\walls.zip", @"C:\Wallpapers", false, ".jpg$");
Console.WriteLine("Hecho!!");
}
Colorized by: CarlosAg.CodeColorizer
En este caso el método CreateZip admite cuatro argumentos: el nombre y ruta del fichero ZIP a crear, el directorio donde se encuentran los ficheros que queremos comprimir, un parámetro booleano que indica si la compresión es recursiva (incluimos subdirectorios) o no, y por último un parámetro de tipo string que contiene la máscara para elegir el tipo de ficheros que queremos a comprimir. En este caso es todos los ficheros con extensión JPG. Se aplican las mismas excepciones en uso de máscaras que he comentado para ExtractZip.
Eso esta en este artículo, al final casi:
http://www.picacodigos.com/CommentVi...ce18ac076.aspx
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:37.