Como compactar uma pasta em C#

Como compactar uma pasta em C#

Este artigo rápido explica como compactar uma pasta em C#. Ele fornece etapas detalhadas e um exemplo de código para ajudar na criação de um arquivo ZIP para uma pasta e seu conteúdo. Esta solução não requer a instalação de ferramentas de terceiros.

Benefícios de Compactar Pastas

  1. Eficiência de Espaço:
    • Reduz o espaço de armazenamento ao compactar arquivos.
  2. Gerenciamento de Arquivos Organizado:
    • Combina múltiplos arquivos em um único arquivo para distribuição e gerenciamento mais fácil.
  3. Transferências Mais Rápidas:
    • Tamanhos de arquivo menores levam a tempos de upload e download mais rápidos.

Pré-requisitos: Preparando o Ambiente

  1. Configure o Visual Studio ou qualquer IDE .NET compatível.
  2. Instale a biblioteca Aspose.ZIP via NuGet Package Manager.

Guia Passo a Passo para Compactar uma Pasta

Passo 1: Instalar Aspose.ZIP

Adicione a biblioteca Aspose.ZIP ao seu projeto.

Install-Package Aspose.ZIP

Passo 2: Criar um Objeto FileStream

Instancie um objeto FileStream para o arquivo ZIP de saída.

using System.IO;
var zippedFolder = File.Open("AnimationImages.zip", FileMode.Create);

Passo 3: Criar um Objeto ZIP Archive

Crie uma instância da classe Archive para lidar com operações ZIP.

using (Archive archiveFile = new Archive())
{
    // O processamento adicional segue aqui
}

Passo 4: Criar Entradas no Arquivo

Adicione todos os arquivos e pastas do diretório de destino recursivamente.

archiveFile.CreateEntries("AnimationImages");

Passo 5: Salvar o Arquivo ZIP

Uma vez que as entradas são criadas, salve o arquivo no disco.

archiveFile.Save(zippedFolder);

Exemplo Completo de Código para Compactar uma Pasta

Aqui está o exemplo completo em C# demonstrando como compactar uma pasta:

// Crie um objeto de fluxo de arquivo para o arquivo zip de saída
using (FileStream zippedFolder = File.Open("AnimationImages.zip", FileMode.Create))
{
    // Crie um objeto de classe de arquivo de Zip archive
    using (Archive archiveFile = new Archive())
    {
        // Adicione todos os arquivos e pastas recursivamente
        archiveFile.CreateEntries("AnimationImages");

        // Salve o arquivo ZIP de saída
        archiveFile.Save(zippedFolder);
    }
}

Informações Adicionais

  • Você pode fornecer um objeto da classe DirectoryInfo como a fonte dos arquivos para o arquivo ZIP de saída.
  • Você também pode incluir flags para controlar se deve incluir a pasta raiz no arquivo ZIP de saída.

Conclusão

Este tutorial guiou você pelo processo de compactar uma pasta completa em C#. Com apenas algumas linhas de código, você pode gerenciar estruturas de pastas facilmente e criar arquivos ZIP de forma eficiente. Para mais funcionalidades, confira tutoriais sobre extração de arquivos ZIP ou criação de diferentes tipos de arquivos.

 Português