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.