Comprimir y descomprimir carpetas en .NET
Contents
[
Hide
Show
]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#
- Defina el directorio que contiene los archivos a comprimir.
- Abra dos secuencias de archivos para los archivos ZIP de salida usando FileMode.Create.
- Cree una instancia de la clase Archivo.
- Utilice el método CreateEntries para agregar todos los archivos y carpetas del directorio especificado al archivo.
- 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
- Abra la secuencia del archivo ZIP usando FileMode.Open.
- Cree una instancia de la clase Archive pasando la secuencia del archivo ZIP.
- 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
- Abra una secuencia de archivos para el archivo ZIP de salida usando FileMode.Create.
- Cree objetos FileInfo para los archivos que desea comprimir.
- Cree una instancia de la clase Archivo.
- Utilice el método CreateEntry para agregar cada archivo al archivo.
- 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
- Abra la secuencia del archivo ZIP usando FileMode.Open.
- Cree una instancia de la clase Archive pasando la secuencia del archivo ZIP.
- Extraiga la primera entrada del archivo, proporcionando una contraseña específica para esa entrada utilizando el método Extraer.
- 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 }