Cómo comprimir o extraer archivos usando C#

Descripción general

Este artículo explica cómo comprimir o extraer archivos. Estos archivos podrían ser Zip, 7z, Rar y otros formatos similares. Cubre los siguientes temas.

Formato: ZIP

Formato: ZIP - Contraseña

Formato: 7z

Formato: RAR

Otros temas tratados en este artículo.

C# comprimir o extraer archivos

Esta página muestra cómo realizar operaciones de archivo estándar en C# usando Aspose.ZIP para .NET. El paquete Aspose.ZIP se puede agregar a su proyecto .NET usando el siguiente comando NuGet:

1PM> Install-Package Aspose.Zip

También se puede agregar directamente al proyecto .NET como referencia de ensamblaje. La biblioteca Aspose.ZIP se puede descargar desde nuestra página de inicio: https://products.aspose.com/zip/net/.

La biblioteca Aspose.ZIP .NET se puede utilizar en cualquier sistema operativo que admita .NET Core (por ejemplo, Windows, Linux o macOS).

Cómo crear archivos ZIP en C#

Pasos: crear un archivo Zip en C#

  1. Cree una instancia de la clase Archivo.
  2. Agregue archivos usando el método Archive.CreateEntry.
  3. Comprima los archivos usando el método Archive.Save.
1using (var archive = new Archive())
2{
3   archive.CreateEntry("entry_name1.dat", "input_file1.dat");
4   archive.CreateEntry("entry_name2.dat", "input_file2.dat");
5   archive.Save("result_archive.zip");
6}

El constructor de clases de archivo crea un archivo ZIP normal utilizando algoritmo de compresión Deflate y sin cifrado.

Cómo descomprimir archivos en C#

Pasos: descomprimir el archivo en una carpeta en C#

  1. Cree una instancia de la clase Archivo con su archivo zip.
  2. Descomprima el archivo zip usando el método Archive.ExtractToDirectory en su carpeta.
1using (var archive = new Archive("input_archive.zip"))
2{
3   archive.ExtractToDirectory("\\outputDirectory");
4}

El constructor de clases de archivo puede abrir cualquier archivo ZIP. ArchiveLoadOptions debe proporcionarse como segundo parámetro en caso de que el archivo de entrada esté protegido con contraseña (consulte el ejemplo a continuación).

Cómo comprimir archivos 7z en C#

Pasos: crear archivos 7z en C#

  1. Cree una instancia de la clase SevenZipArchive con SevenZipLZMACompressionSettings.
  2. Agregue sus archivos llamando al método SevenZipArchive.CreateEntries.
  3. Guárdelo en formato 7z llamando al método SevenZipArchive.Save.
1using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
2{
3	archive.CreateEntries(CommonConstants.TestFilesFolder + "ManyFilesToCompress");
4	archive.Save(CommonConstants.TestOutFolder + "7Z_ManyFilesToCompress.7z");
5}

Se debe utilizar el constructor de la clase SevenZipArchive para crear un nuevo archivo 7z. El ejemplo anterior utiliza la compresión LZMA clásica, pero también hay disponibles otras opciones de compresión y cifrado.

Cómo extraer archivos 7z en C#

Pasos: extraer el archivo 7z en C#

  1. Cree una instancia de la clase SevenZipArchive con su archivo 7z.
  2. Extraiga el contenido del archivo 7z llamando al método SevenZipArchive.ExtractToDirectory.
1using (var archive = new SevenZipArchive("input_archive.7z"))
2{
3	archive.ExtractToDirectory("\\outputDirectory");
4}

En el ejemplo anterior, el constructor de la clase SevenZipArchive abre un archivo 7z no protegido.

Cómo extraer archivos RAR en C#

Pasos: extraer el archivo RAR en C#

  1. Cree una instancia de la clase RarArchive con su archivo RAR.
  2. Extraiga el contenido del archivo RAR llamando al método RarArchive.ExtractToDirectory.
1using (var archive = new RarArchive("input_archive.rar"))
2{
3	archive.ExtractToDirectory("\\outputDirectory");
4}

En el ejemplo anterior, el constructor de la clase RarArchive abre un archivo RAR no protegido.

Cómo comprimir archivos con contraseña en C#

Pasos: crear un archivo Zip con contraseña en C#

  1. Cree una instancia de la clase Archivo.
  2. Páselo ArchiveEntrySettings y establezca la propiedad encryptionSettings con el objeto de TraditionalEncryptionSettings que tiene su contraseña.
  3. Agregue tantos archivos llamando al método Archive.CreateEntry varias veces.
  4. Guárdelo como archivo Zip usando el método Archive.Save.
1using (var archive = new Archive(new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("pass"))))
2{
3   archive.CreateEntry("entry_name1.dat", "input_file1.dat");
4   archive.CreateEntry("entry_name2.dat", "input_file2.dat");
5   archive.Save("result_archive.zip");
6}

El parámetro de configuración de cifrado se utiliza para crear un archivo ZIP protegido con contraseña.

Cómo descomprimir archivos con contraseña en C#

Pasos: descomprimir el archivo Zip protegido con contraseña usando C#

  1. Cree una instancia de la clase Archivo.
  2. Pásele el objeto ArchiveLoadOptions y establezca la propiedad DecryptionPassword con su archivo zip contraseña.
  3. Descomprima el archivo zip usando el método Archive.ExtractToDirectory en su carpeta.
1using (var archive = new Archive("input_archive.zip", new ArchiveLoadOptions{DecryptionPassword = "pass"}))
2{
3   archive.ExtractToDirectory("\\outputDirectory");
4}

El valor de la propiedad ArchiveLoadOptions con DecryptionPassword se utiliza para abrir un archivo ZIP protegido con contraseña.

Ver también

Este artículo también cubre estos temas. Los códigos son los mismos que los anteriores.

Formato: ZIP

Formato: 7z

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.