puede descomprimir crear comprimir comprimido como archivos archivo abrir c# .net gzip

descomprimir - ¿Cómo se descarga y se extrae un archivo comprimido con C#?



no se puede abrir como un archivo comprimido 7 zip (5)

Necesito descargar periódicamente, extraer y guardar los contenidos de http://data.dot.state.mn.us/dds/det_sample.xml.gz en el disco. ¿Alguien tiene experiencia descargando archivos comprimidos con C #?



Puede usar WebClient en System.Net para descargar:

WebClient Client = new WebClient (); Client.DownloadFile("http://data.dot.state.mn.us/dds/det_sample.xml.gz", " C:/mygzipfile.gz");

luego usa #ziplib para extraer

Editar: o GZipStream ... se olvidó de eso


Simplemente use la clase HttpWebRequest en el espacio de nombres System.Net para solicitar el archivo y descargarlo. A continuación, utilice la clase GZipStream en el espacio de nombres System.IO.Compression para extraer el contenido a la ubicación que especifique. Ellos proporcionan ejemplos.


Pruebe SharpZipLib , una biblioteca basada en C # para comprimir y descomprimir archivos usando gzip / zip.

El uso de la muestra se puede encontrar en esta publicación de blog :

using ICSharpCode.SharpZipLib.Zip; FastZip fz = new FastZip(); fz.ExtractZip(zipFile, targetDirectory,"");


Para comprimir:

using (FileStream fStream = new FileStream(@"C:/test.docx.gzip", FileMode.Create, FileAccess.Write)) { using (GZipStream zipStream = new GZipStream(fStream, CompressionMode.Compress)) { byte[] inputfile = File.ReadAllBytes(@"c:/test.docx"); zipStream.Write(inputfile, 0, inputfile.Length); } }

Descomprimir:

using (FileStream fInStream = new FileStream(@"c:/test.docx.gz", FileMode.Open, FileAccess.Read)) { using (GZipStream zipStream = new GZipStream(fInStream, CompressionMode.Decompress)) { using (FileStream fOutStream = new FileStream(@"c:/test1.docx", FileMode.Create, FileAccess.Write)) { byte[] tempBytes = new byte[4096]; int i; while ((i = zipStream.Read(tempBytes, 0, tempBytes.Length)) != 0) { fOutStream.Write(tempBytes, 0, i); } } } }

Tomado de una publicación que escribí el año pasado que muestra cómo descomprimir un archivo gzip usando C # y la clase incorporada GZipStream. http://blogs.msdn.com/miah/archive/2007/09/05/zipping-files.aspx

En cuanto a la descarga, puede utilizar las clases estándar WebRequest o WebClient en .NET.