Descomprimir un archivo .gz usando C #

Tengo un archivo gunzip alquitranado llamado ZippedXmls.tar.gz que tiene 2 xml dentro. Necesito descomprimir este archivo mediante progtwigción y la salida debe ser de 2 xmls copiados en una carpeta.

¿Cómo logro esto usando C #?

He usado el GZipStream integrado de .Net para flujos de bytes gzip y funciona muy bien. Sospecho que tus archivos están alquitranados primero, antes de ser comprimidos.

Has solicitado el código, así que aquí hay una muestra, suponiendo que tienes un único archivo comprimido:

FileStream stream = new FileStream("output.xml", FileMode.Create); // this is the output GZipStream uncompressed = new GZipStream(stream, CompressionMode.Decompress); uncompressed.Write(bytes,0,bytes.Length); // write all compressed bytes uncompressed.Flush(); uncompressed.Close(); stream.Dispose(); 

Editar:

Has cambiado tu pregunta para que el archivo sea un archivo tar.gz: técnicamente, mi respuesta no se aplica a tu situación, pero la dejo aquí para las personas que quieran manejar archivos .gz.

sharpziplib debería ser capaz de hacer esto