Descomprimir archivos en C#

En la publicación anterior, aprendió diferentes formas de comprimir archivos y carpetas en archivos ZIP utilizando Aspose.ZIP for .NET. En esta publicación, le mostraré cómo extraer o descomprimir archivos en archivos ZIP usando C#. También cubriremos cómo extraer archivos ZIP protegidos con contraseña o cifrados con AES mediante programación. Este artículo se divide en las siguientes secciones:

API de C# para descomprimir archivos

Antes de comenzar, asegúrese de haber descargado y haber hecho referencia a Aspose.ZIP for .NET o instalado su paquete mediante NuGet Package Manager en su proyecto.

Descomprimir archivos ZIP usando C#

El proceso de descompresión de archivos ZIP se puede lograr de dos maneras:

  • Descomprimir cada archivo en ZIP por separado
  • Descomprimir archivos en una carpeta específica

En el primer método, puede acceder explícitamente y descomprimir cada archivo en el archivo ZIP. Además, puede imprimir el progreso del proceso de extracción. Mientras que el segundo método simplemente descomprime los archivos en la carpeta especificada.

Extraiga cada archivo en el archivo por separado

Los siguientes son los pasos para acceder y extraer archivos e imprimir el progreso de la extracción en C#:

El siguiente ejemplo de código muestra cómo extraer archivos en un archivo ZIP usando C#.

// Abrir archivo ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
	{
		// Acceda a cada entrada en el archivo ZIP
		for (int i = 0; i < archive.Entries.Count; i++)
		{
			int percentReady = 0;
			// Registre el progreso de la extracción en la consola.
			archive.Entries[i].ExtractionProgressed += (s, e) =>
			{
				int percent = (int)((100 * e.ProceededBytes) / ((ArchiveEntry)s).UncompressedSize);
				if (percent > percentReady)
				{
					Console.WriteLine(string.Format("{0}% decompressed", percent));
					percentReady = percent;
				}
			};
			// Extraiga el contenido de la entrada al disco.
			archive.Entries[i].Extract(archive.Entries[i].Name);
		}
	}
}

Extraer archivos en una carpeta

Los siguientes pasos se usan para extraer archivos en una carpeta específica en C#.

El siguiente ejemplo de código C# descomprime los archivos en una carpeta.

// Abrir archivo ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	using (var archive = new Archive(zipFile))
	{
		// Descomprimir archivos a la carpeta
		archive.ExtractToDirectory("Unzipped Files");
	}
}

Descomprima archivos ZIP protegidos con contraseña en C#

También puede descomprimir un archivo ZIP protegido con contraseña utilizando Aspose.ZIP for .NET. Para esto, solo necesita especificar la contraseña usando la clase ArchiveLoadOptions que se pasará como segundo parámetro al constructor del Archivo.

El siguiente es el código de muestra para descomprimir un archivo ZIP protegido con contraseña.

// Abrir archivo ZIP
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	// Descifrar usando contraseña
	using (var archive = new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
	{
    		// Extraer archivos a la carpeta
		archive.ExtractToDirectory("Unzipped Files");
	}
}

Extraiga archivos ZIP cifrados con AES en C#

Un archivo ZIP también se puede cifrar con cifrado AES. Aspose.ZIP for .NET admite el cifrado de archivos con métodos de cifrado AES128, AES192 y AES256. Descomprimir un archivo ZIP cifrado con AES es similar a descomprimir archivos ZIP protegidos con contraseña. Simplemente especifique la contraseña de descifrado usando la clase ArchiveLoadOptions y la API se encargará del resto.

El siguiente ejemplo de código muestra cómo descomprimir archivos ZIP cifrados con AES en C#.

// Abrir archivo ZIP
using (FileStream zipFile = File.Open("encrypted.zip", FileMode.Open))
{
  	// Descifrar y extraer a la carpeta
	new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }).ExtractToDirectory("decrypted");
}

Obtenga una licencia de API gratuita

Puede usar Aspose.ZIP for .NET sin limitaciones de evaluación al obtener una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido a descomprimir archivos ZIP usando C#. Además, ha visto cómo descomprimir archivos en archivos ZIP protegidos con contraseña. Los ejemplos de código también han demostrado cómo extraer archivos en un archivo ZIP cifrado en C#. Puede explorar más sobre Aspose.ZIP for .NET usando documentación.

Artículos relacionados