Estoy tratando de descomprimir programáticamente un archivo comprimido.
Intenté usar la System.IO.Compression.GZipStream
clase en .NET, pero cuando se ejecuta mi aplicación (en realidad una prueba unitaria) obtengo esta excepción:
System.IO.InvalidDataException: el número mágico en el encabezado GZip no es correcto. Asegúrate de pasar una transmisión GZip
Ahora me doy cuenta de que un .zip
archivo no es lo mismo que un .gz
archivo, y que GZip
no es lo mismo que Zip
.
Sin embargo, dado que puedo extraer el archivo haciendo doble clic manualmente en el archivo comprimido y luego haciendo clic en el botón "Extraer todos los archivos", creo que también debería haber una forma de hacerlo en el código.
Por lo tanto, he tratado de usar Process.Start()
con la ruta al archivo comprimido como entrada. Esto hace que mi aplicación abra una ventana que muestra el contenido del archivo comprimido. Está bien, pero la aplicación se instalará en un servidor sin ninguno para hacer clic en el botón "Extraer todos los archivos".
Entonces, ¿cómo hago para que mi aplicación extraiga los archivos en los archivos comprimidos?
¿O hay otra forma de hacerlo? Prefiero hacerlo en código, sin descargar ninguna biblioteca o aplicación de terceros; al departamento de seguridad no le gusta mucho eso ...