Como Criar um Arquivo ZIP na Memória em C#

Como Criar um Arquivo ZIP na Memória em C#

Neste tutorial passo a passo, você aprenderá como criar um arquivo ZIP na memória usando C#. O processo aqui enumerado permite que você comprime arquivos e pastas em um formato ZIP sem ter que criar um arquivo físico no disco.

Benefícios da criação de arquivos ZIP na memória

  • O desempenho:- Evite o disco I/O acima, tornando o processo mais rápido.

  • Armazenamento temporário:- Keeps arquivos em memória para acesso rápido e processamento.

  • Flexibilidade:- Facilita operações como o envio de arquivos através de uma rede sem armazenamento intermediário.

Título: Preparando o Meio Ambiente

  • Instale o Visual Studio ou qualquer .NET IDE compatível.
  • Instale Aspose.ZIP no NuGet Package Manager.

Guia passo a passo para criar arquivos ZIP na memória

Passo 1: Instalar Aspose.ZIP

Comece adicionando a biblioteca Aspose.ZIP ao seu projeto.

Install-Package Aspose.ZIP

Passo 2: Inclua o espaço de nome

Adicione o Aspose.Zip Nome espaço para o seu código para usar suas funcionalidades.

using Aspose.Zip;

Passo 3: Carregar arquivos do disco

Retirar os caminhos de arquivo da pasta de origem para uma sequência de cordas.

string[] filesArray = Directory.GetFiles("YourFolderPath", "*.*", SearchOption.TopDirectoryOnly);

Passo 4: Crie um objeto de arquivo

Imediatamente um Archive Objeto em memória para manter as entradas ZIP.

using (MemoryStream zipFileInMemory = new MemoryStream())
{
    using (Archive zipArchive = new Archive())
    {
        // Further processing follows here
    }
}

Passo 5: Crie entradas de arquivo

Passe pela file array e crie um ArchiveEntry para cada arquivo.

foreach (string fileDiskPath in filesArray)
{
    string fileName = Path.GetFileName(fileDiskPath);
    zipArchive.CreateEntry(fileName, fileDiskPath);
}

Passo 6: Salve o arquivo ZIP na memória

Crie o arquivo ZIP na memória, salvá-lo para o MemoryStream.

zipArchive.Save(zipFileInMemory);

Exemplo de código completo para criar um arquivo ZIP na memória

Aqui está o código completo que ilustra como criar um arquivo ZIP na memória:

// Create a MemoryStream instance for the ZIP file
using (MemoryStream zipFileInMemory = new MemoryStream())
{
    // Create an empty Archive object for ZIP
    using (Archive zipArchive = new Archive())
    {
        // Get all files from a folder and store their paths in a string array
        string[] filesArray = Directory.GetFiles("YourFolderPath", "*.*", SearchOption.TopDirectoryOnly);

        // Loop through the array and create an ArchiveEntry for each file
        foreach (string fileDiskPath in filesArray)
        {
            string fileName = Path.GetFileName(fileDiskPath);
            zipArchive.CreateEntry(fileName, fileDiskPath);
        }

        // Save the Archive in memory
        zipArchive.Save(zipFileInMemory);
    }
}

Informações adicionais

  • Você pode facilmente modificar o código para aplicar métodos de criptografia ou compressão para o arquivo ZIP.
  • Esta solução permite que você execute operações adicionais no arquivo ZIP em memória, como enviá-lo através de uma rede ou salvá-lo para o disco mais tarde.

Conclusão

Este tutorial demonstrou como criar um arquivo ZIP na memória usando C#. Ao seguir a fonte fornecida, você pode gerenciar eficientemente a compressão de arquivos dentro de suas aplicações sem ter que criar arquivos físicos. Para recursos mais avançados como extrair arquivos ZIP, consulte documentação Aspose.ZIP adicional.

 Português