Cómo comprimir una carpeta en C#
Este artículo rápido explica cómo zip una pasta en C#. proporciona pasos detallados y una muestra de código para ayudar en la creación de un archivo ZIP para una pasta y sus contenidos.
Beneficios de Zipping Folders
Eficiencia espacial:
Reduce el espacio de almacenamiento mediante la compresión de archivos.
Gestión de archivos organizados:
Combina varios archivos en un solo archivo para facilitar la distribución y la gestión.
Transferencias más rápidas:
Los tamaños de archivo más pequeños conducen a un tiempo de descarga y descarga más rápido.
Requisitos: Preparación del medio ambiente
- Instalar Visual Studio o cualquier compatible .NET IDE.
- Instalar la biblioteca Aspose.ZIP a través de NuGet Package Manager.
Guía paso a paso para ZIP una carpeta en C#
Paso 1: Instalar Aspose.ZIP
Añadir la biblioteca Aspose.ZIP a su proyecto utilizando el gerente de paquetes NuGet. Esto permite las características de compresión de archivos y carteles en los proyectos .NET y C#.
Install-Package Aspose.ZIP
Paso 2: Crear un objeto FileStream
Instantado a FileStream
El objeto para el archivo ZIP de salida. Este fichero será el Archivo de destino, por ejemplo “AnimationImages.zip”.
using System.IO;
var zippedFolder = File.Open("AnimationImages.zip", FileMode.Create);
Paso 3: Crear un objeto de archivo ZIP
Crea un ejemplo de la Archive
clase para gestionar las operaciones de archivo ZIP en C#.
using (Archive archiveFile = new Archive())
{
// Further processing follows here
}
Paso 4: Crear entradas en el archivo
Añadir todos los archivos y carpetas del directorio objetivo de forma recurrente utilizando el CreateEntries
Esto le permite zipar todos los contenidos de una carpeta en C#.
archiveFile.CreateEntries("AnimationImages");
Paso 5: Salva el archivo ZIP
Una vez que se crean las entradas, guardar el archivo en el disco. Esto producirá un fichero ZIP que contiene todos los archivos seleccionados y subfolders.
archiveFile.Save(zippedFolder);
Exemplos de código completo para ZIP una carpeta
Aquí está el ejemplo completo de C# que demuestra cómo zip una carpeta, agregar archivos a un archivo ZIP, o zip múltiples ficheros en un directorio:
// Create a file stream object for the output zip file
using (FileStream zippedFolder = File.Open("AnimationImages.zip", FileMode.Create))
{
// Create a Zip archive file class object
using (Archive archiveFile = new Archive())
{
// Add all the files and folders recursively
archiveFile.CreateEntries("AnimationImages");
// Save the output ZIP file
archiveFile.Save(zippedFolder);
}
}
Información adicional
- Usted puede proporcionar un objeto de clase DirectoryInfo como la fuente de los archivos para el archivo ZIP de salida.
- También puede incluir banderas para controlar si incluir la pasta de raíz en la salida ZIP.
- Este método es adecuado para los proyectos .NET Core, .Net Framework y ASP.NET.
- Aspose.ZIP puede gestionar los archivos, las cartas y los directorios en C#.
Preguntas frecuentes (FAQ)
¿Cómo pongo una cartera en C#?
Siga los pasos anteriormente para agregar Aspose.ZIP a su proyecto y utilizar CreateEntries
y Save
los métodos.
¿Puedo crear un archivo ZIP en C# para varios archivos?
Sí, usamos el CreateEntries
método para agregar todos los archivos en una carpeta, o añadir archivo individualmente.
¿Cómo zipar archivos en un directorio utilizando C#?
Pasar la ruta del directorio a CreateEntries
para agregar de forma recurrente todos los archivos y subfolders al ZIP.
¿Es compatible con .NET Core?
Sí, Aspose.ZIP trabaja con los proyectos .NET Core, .Net Framework y ASP.NET.
¿Puedo agregar archivos a un archivo ZIP existente en C#?
Sí, puede abrir un archivo existente y agregar archivos o carpetas según sea necesario.
¿Cómo puedo controlar si la pasta de raíz está incluida en el archivo ZIP?
Utilice las banderas o opciones disponibles en CreateEntries
para el control fin-grinado.
Conclusión
Este tutorial te ha guiado a través del proceso de zipping una pasta completa en C# con Aspose.ZIP. Puedes zipar las cartas, agregar archivos a un ZIP, y gestionar la composición de archivo de manera eficiente en aplicaciones .NET, .Net Core y ASP.NET. Para extraer o deszipping archivas, vea nuestros otros tutoriales Aspase.