En este tutorial paso a paso, aprenderá cómo crear un archivo ZIP en la memoria en C#. Debe ejecutar los siguientes pasos simples para poder crear un archivo ZIP en la memoria.
Pasos para crear un archivo ZIP en la memoria en C#
- Agregue Aspose.ZIP for .NET referencia del paquete NuGet a la solución
- Agregue el uso de la instrucción Aspose.Zip en el archivo de código Program.cs
- Aplicar la licencia para la API Aspose.ZIP usando el método License.SetLicense
- Obtenga uno o todos los archivos de la carpeta ubicada en el disco y almacene sus rutas en una matriz de cadenas
- Crear objeto de Archive Class en la memoria
- Para cada archivo, cree un nodo ArchiveEntry en ZIP Archive
- Guarde o copie la instancia de archivo ZIP en MemoryStream
El siguiente ejemplo de código C# se puede usar en su aplicación .NET para comprimir todos los archivos en una carpeta en el disco a ZIP file format y luego almacenar el archivo ZIP en el objeto de flujo de memoria.
Código para crear un archivo ZIP en la memoria en C#
using System.IO; | |
// Following namespace is required to Create ZIP File in Memory | |
using Aspose.Zip; | |
namespace CreateZipFileInMemory | |
{ | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
License AsposeZipLicense = new License(); | |
// Load license from file system into memory stream | |
using (MemoryStream stream = new MemoryStream(File.ReadAllBytes("path to license.lic"))) | |
{ | |
// Set license prior to creating ZIP file in memory | |
AsposeZipLicense.SetLicense(stream); | |
} | |
#region C# code to create ZIP archive in memory | |
// Create MemoryStream instance | |
using (MemoryStream zipFileInMemory = new MemoryStream()) | |
{ | |
// Create empty Archive object for ZIP file | |
using (Aspose.Zip.Archive zipArchive = new Aspose.Zip.Archive()) | |
{ | |
// Get all files from a Folder and store their paths in string Array | |
string[] filesArray = Directory.GetFiles("ZIP all Files\\", "*.*", SearchOption.TopDirectoryOnly); | |
// Loop through the Array and create an ArchiveEntry against each file within the ZIP Archive | |
foreach (string fileDiskPath in filesArray) | |
{ | |
string[] folders = fileDiskPath.Split(new char[] { '\\' }); | |
string fileName = folders[folders.Length - 1]; | |
zipArchive.CreateEntry(fileName, fileDiskPath); | |
} | |
// Call Save method to create ZIP Archive in memory | |
zipArchive.Save(zipFileInMemory); | |
} | |
} | |
#endregion | |
} | |
} | |
} |
Por lo tanto, esta aplicación C# para crear un archivo zip en la consola de memoria esencialmente lo ayudará a convertir la carpeta a formato ZIP y escribir todo el contenido de la carpeta en la memoria en formato comprimido. Luego, puede volver a crear el archivo ZIP desde MemoryStream C# y guardarlo en el disco. Una vez que el archivo se vuelve a crear en el sistema de archivos, puede extraer archivo ZIP usando C# codificar.