Neste tutorial passo a passo, você aprenderá como criar um arquivo ZIP na memória em C#. Você precisa executar as seguintes etapas simples para poder criar um arquivo ZIP na memória.
Etapas para criar arquivo ZIP na memória em C#
- Adicione Aspose.ZIP for .NET referência de pacote NuGet à solução
- Adicione usando a instrução Aspose.Zip no arquivo de código Program.cs
- Aplique a licença para a API Aspose.ZIP usando o método License.SetLicense
- Obtenha um ou todos os arquivos da pasta localizados no disco e armazene seus caminhos na matriz de strings
- Crie o objeto de Archive Class na memória
- Para cada arquivo, crie um nó ArchiveEntry no arquivo ZIP
- Salve ou copie a instância ZIP Archive para MemoryStream
O exemplo de código C# a seguir pode ser usado em seu aplicativo .NET para compactar todos os arquivos em uma pasta no disco para ZIP file format e, em seguida, armazenar o arquivo ZIP no objeto de fluxo de memória.
Código para criar arquivo ZIP na memória em 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 | |
} | |
} | |
} |
Portanto, este arquivo zip de criação de C# no aplicativo de console de memória ajudará essencialmente a converter a pasta para o formato ZIP e gravar todo o conteúdo da pasta na memória em formato compactado. Depois, você pode recriar o arquivo ZIP do MemoryStream C# e salvá-lo em disco. Depois que o arquivo for recriado no sistema de arquivos, você poderá extrair arquivo ZIP usando C# codificar.