Comprimir y descomprimir carpetas en .NET

La API Aspose.ZIP le permite comprimir y descomprimir archivos sin preocuparse por la estructura del archivo subyacente. Este artículo muestra cómo trabajar con compresión de archivos únicos y múltiples.

Directorio de compresión

Comprimir contenidos del directorio

Pasos: Comprimir el contenido del directorio en archivos ZIP usando C#

  1. Defina el directorio que contiene los archivos a comprimir.
  2. Abra dos secuencias de archivos para los archivos ZIP de salida usando FileMode.Create.
  3. Cree una instancia de la clase Archivo.
  4. Utilice el método CreateEntries para agregar todos los archivos y carpetas del directorio especificado al archivo.
  5. Guarde el contenido del directorio comprimido en varios archivos ZIP utilizando el método Guardar.
 1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2    string dataDir = RunExamples.GetDataDir_Data();
 3
 4    using (FileStream zipFile = File.Open(dataDir + "CompressDirectory_out.zip", FileMode.Create))
 5    {
 6        using (FileStream zipFile2 = File.Open(dataDir + "CompressDirectory2_out.zip", FileMode.Create))
 7        {
 8            using (Archive archive = new Archive())
 9            {
10                DirectoryInfo corpus = new DirectoryInfo(dataDir + "CanterburyCorpus");
11                archive.CreateEntries(corpus);
12                archive.Save(zipFile);
13                archive.Save(zipFile2);
14            }
15        }
16    }

Extracción del archivo de directorio comprimido

Pasos: Extracción de un archivo de directorio comprimido

  1. Abra la secuencia del archivo ZIP usando FileMode.Open.
  2. Cree una instancia de la clase Archive pasando la secuencia del archivo ZIP.
  3. Extraiga el contenido del archivo comprimido a un directorio específico usando ExtractToDirectory.
1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2    using (FileStream zipFile = File.Open(dataDir + "CompressDirectory_out.zip", FileMode.Open))
3    {
4        using (var archive = new Archive(zipFile))
5        {
6            archive.ExtractToDirectory(dataDir + "DecompressFolder_out");
7        }
8    }

Comprimir archivos por información de archivo

Pasos: Comprimir archivos por información de archivo

  1. Abra una secuencia de archivos para el archivo ZIP de salida usando FileMode.Create.
  2. Cree objetos FileInfo para los archivos que desea comprimir.
  3. Cree una instancia de la clase Archivo.
  4. Utilice el método CreateEntry para agregar cada archivo al archivo.
  5. Guarde el archivo utilizando el método Guardar, con opciones de guardado opcionales, como configurar la codificación.
 1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2    using (FileStream zipFile = File.Open(dataDir + "CompressFilesByFileInfo_out.zip", FileMode.Create))
 3    {
 4        FileInfo fi1 = new FileInfo(dataDir + "alice29.txt");
 5        FileInfo fi2 = new FileInfo(dataDir + "fields.c");
 6
 7        using (var archive = new Archive())
 8        {
 9            archive.CreateEntry("alice29.txt", fi1);
10            archive.CreateEntry("fields.c", fi2);
11            archive.Save(zipFile, new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
12        }
13    }

Extraer archivos con diferentes archivos de entrada

Pasos: Extraer archivos con una entrada diferente Contraseñas

  1. Abra la secuencia del archivo ZIP usando FileMode.Open.
  2. Cree una instancia de la clase Archive pasando la secuencia del archivo ZIP.
  3. Extraiga la primera entrada del archivo, proporcionando una contraseña específica para esa entrada utilizando el método Extraer.
  4. Extraiga la segunda entrada con una contraseña diferente y guárdela en un archivo de salida independiente.
1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2    using (FileStream zipFile = File.Open(dataDir + "\\different_password.zip", FileMode.Open))
3    {
4        using (Archive archive = new Archive(zipFile))
5        {
6            archive.Entries[0].Extract(dataDir + "alice29_extracted_pass_out.txt", "first_pass");
7            archive.Entries[1].Extract(dataDir + "asyoulik_extracted_pass_out.txt", "second_pass");
8        }
9    }
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.