Introducción
Los archivos zip son vitales para la organización y compresión de datos, pero ¿cómo modificar su contenido mediante programación? La solución está en Aspose.Zip para .NET, una robusta biblioteca que simplifica la manipulación de archivos zip con C#. En este tutorial, le guiaremos paso a paso para extraer, eliminar y añadir 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 descargarla. aquí.
-
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 internas del zip
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 potente y sencilla 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 demuestra la versatilidad de la biblioteca. ¡Explora diferentes escenarios y mejora tus 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 prueba gratuita disponible para descargar. aquí.
¿Cómo puedo obtener soporte para Aspose.Zip para .NET?
Visita el Foro de Aspose.Zip Para apoyo y discusiones.
¿Puedo comprar una licencia temporal de Aspose.Zip para .NET?
Sí, puedes obtener una licencia temporal aquí.
¿Dónde puedo encontrar la documentación de Aspose.Zip para .NET?
La documentación completa está disponible aquí.