Modificar archivos Zip con Aspose.Zip para .NET
Introducción
Los archivos zip son fundamentales para la organización y compresión de datos, pero ¿cómo se modifica su contenido mediante programación? La solución está en Aspose.Zip para .NET, una biblioteca robusta que simplifica la manipulación de archivos zip con C#. En este tutorial, lo guiaremos paso a paso en la extracción, eliminación y adición de entradas a archivos zip.
Prerrequisitos
Antes de comenzar, asegúrese de tener lo siguiente:
-
Biblioteca Aspose.Zip para .NET: instala la biblioteca en tu proyecto. Puedes descargarlaaquí.
-
Directorio de documentos: configure un directorio para almacenar sus archivos zip. Reemplace
"Your Document Directory"
en el código con su ruta actual.
Importar espacios de nombres necesarios
Comience importando los espacios de nombres necesarios:
using Aspose.Zip;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
Paso 1: Abra el archivo Zip externo
Comience abriendo su archivo zip principal (zip externo):
string dataDir = "Your Data Directory";
using (Archive outer = new Archive(dataDir + "outer.zip"))
{
// Proceda a identificar las entradas internas del zip
}
Paso 2: Identificar las entradas de cremallera internas
A continuación, identifique y prepárese para eliminar todos los archivos zip internos:
List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();
List<string> namesToInsert = new List<string>();
List<MemoryStream> contentToInsert = new List<MemoryStream>();
foreach (ArchiveEntry entry in outer.Entries)
{
if (entry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase))
{
entriesToDelete.Add(entry);
using (MemoryStream innerCompressed = new MemoryStream())
{
entry.Open().CopyTo(innerCompressed);
// Extraer entradas internas
using (Archive inner = new Archive(innerCompressed))
{
foreach (ArchiveEntry ie in inner.Entries)
{
namesToInsert.Add(ie.Name);
MemoryStream content = new MemoryStream();
ie.Open().CopyTo(content);
contentToInsert.Add(content);
}
}
}
}
}
Paso 3: Eliminar entradas del archivo interno
Una vez que haya reunido las entradas que necesita, elimine las entradas zip internas:
foreach (ArchiveEntry e in entriesToDelete)
{
outer.DeleteEntry(e);
}
Paso 4: Agregar entradas modificadas al código postal externo
Ahora, puedes agregar las entradas recién extraídas nuevamente a tu archivo zip externo:
for (int i = 0; i < namesToInsert.Count; i++)
{
outer.CreateEntry(namesToInsert[i], contentToInsert[i]);
}
Paso 5: Guarde el archivo zip modificado
Por último, guarde los cambios en un nuevo archivo zip:
outer.Save(dataDir + "flatten.zip");
Conclusión
Aspose.Zip para .NET ofrece una forma sencilla y eficaz de manipular archivos zip mediante programación. Este tutorial abordó la extracción, eliminación y adición de entradas a un archivo zip, lo que ilustra la versatilidad de la biblioteca. ¡Explore diferentes escenarios y mejore sus habilidades de manipulación de archivos!
Preguntas frecuentes
¿Puedo usar Aspose.Zip para .NET con otros lenguajes de programación?
Aspose.Zip está diseñado principalmente para aplicaciones .NET, pero Aspose ofrece bibliotecas similares para varios lenguajes de programación.
¿Hay una prueba gratuita disponible para Aspose.Zip para .NET?
Sí, hay una versión de prueba gratuita disponible para descargar.aquí.
¿Cómo puedo obtener soporte para Aspose.Zip para .NET?
Visita elForo Aspose.Zip para apoyo y discusiones.
¿Puedo comprar una licencia temporal de Aspose.Zip para .NET?
Sí, puedes obtener una licencia temporalaquí.
¿Dónde puedo encontrar la documentación de Aspose.Zip para .NET?
La documentación completa está disponibleaquí.