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
- Descomprimir archivos en archivos ZIP en C#
- Descomprimir archivos ZIP protegidos con contraseña
- Extraiga archivos ZIP cifrados con AES en C#
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#:
- Abra el archivo ZIP en un objeto FileStream.
- Cree e inicialice la instancia de Archive con el objeto FileStream.
- Acceda a los archivos en el ZIP utilizando la colección Archive.Entries.
- Configure el controlador de eventos ArchiveEntry.ExtractionProgressed para imprimir el progreso de la extracción.
- Extraiga/descomprima archivos utilizando el método ArchiveEntry.Extract(string).
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#.
- Abra el archivo ZIP usando la clase FileStream.
- Cree una instancia de la clase Archive e inicialícela con el objeto FileStream de ZIP.
- Descomprima los archivos usando el método Archive.ExtractToDirectory(string).
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.