Create ZIP in C#

Introdução aos Arquivos ZIP em C#

Arquivos ZIP são vitais para comprimir e organizar arquivos e pastas em um único contêiner gerenciável. Eles não apenas reduzem o tamanho dos arquivos para armazenamento e transmissão eficientes, mas também preservam metadados e podem ser criptografados para maior segurança. Neste artigo, exploraremos vários métodos para criar arquivos ZIP programaticamente em C#, incluindo como adicionar arquivos e pastas, criar arquivos protegidos por senha e aplicar criptografia AES.

O Que Você Vai Aprender

Neste artigo, você descobrirá como:

Biblioteca ZIP em C#

A Aspose.ZIP for .NET é uma ferramenta robusta para manipular operações de arquivos ZIP dentro de aplicativos .NET, facilitando a compressão ou descompressão de arquivos e pastas. Ela também suporta criptografia AES para maior segurança. Você pode instalar facilmente esta biblioteca a partir do NuGet ou baixar os binários da seção Downloads.

Criar um Arquivo ZIP em C#

Para criar programaticamente um arquivo ZIP em C#, siga estas etapas:

  1. Crie um objeto FileStream para o arquivo ZIP de saída.
  2. Abra o arquivo de origem como um objeto FileStream.
  3. Instancie a classe Archive.
  4. Adicione o arquivo ao arquivo usando o método Archive.CreateEntry(string, FileStream).
  5. Salve o arquivo ZIP com o método Archive.Save(FileStream).

Aqui está um exemplo de código que demonstra como adicionar um arquivo a um arquivo ZIP em C#:

Adicionar Múltiplos Arquivos a um Arquivo ZIP em C#

Quando você precisa adicionar múltiplos arquivos a um arquivo ZIP, existem várias abordagens que você pode adotar:

Usando FileStream para Adicionar Múltiplos Arquivos

Este método utiliza a classe FileStream para adicionar arquivos ao arquivo ZIP através do método Archive.CreateEntry(String, FileStream). Veja como você pode fazer isso:

Usando FileInfo para Múltiplos Arquivos

Alternativamente, você pode utilizar a classe FileInfo para carregar arquivos e adicioná-los ao arquivo ZIP com o método Archive.CreateEntry(String, FileInfo). Abaixo está um exemplo de código:

Usando Caminhos de Arquivo

Você também pode fornecer diretamente os caminhos dos arquivos para o método Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings). Aqui está um exemplo:

Adicionar Pastas a um Arquivo ZIP em C#

Para adicionar uma pasta a um arquivo ZIP em C#, siga estas etapas:

  1. Crie um objeto FileStream para o arquivo ZIP de saída.
  2. Instancie a classe Archive.
  3. Use a classe DirectoryInfo para especificar a pasta que você deseja compactar.
  4. Adicione a pasta ao ZIP usando o método Archive.CreateEntries(DirectoryInfo).
  5. Salve o arquivo ZIP com o método Archive.Save(FileStream).

Aqui está um exemplo de código que ilustra como adicionar uma pasta a um arquivo ZIP:

Criar um ZIP Protegido por Senha usando ZipCrypto em C#

Para proteger seus arquivos ZIP, você pode aplicar proteção por senha usando criptografia ZipCrypto. Isso é realizado utilizando a classe ArchiveEntrySettings no construtor da Archive, que aceita o tipo de criptografia como parâmetro.

Veja como criar um arquivo ZIP protegido por senha usando ZipCrypto em C#:

Criar ZIP Protegido por Senha com Criptografia AES

A Aspose.ZIP for .NET também suporta criptografia AES para proteger arquivos ZIP. Você pode escolher entre os seguintes métodos de criptografia AES:

  • AES128
  • AES192
  • AES256

Para aplicar criptografia AES, use a classe AesEcryptionSettings. Abaixo está um exemplo de código que demonstra como criar um ZIP protegido por senha com criptografia AES em C#:

Definir Modo de Compressão Paralela

Para manipulação eficiente de múltiplas entradas, você pode configurar a API para compressão paralela usando a classe ParallelOptions. Os modos de compressão paralela disponíveis são:

  • Nunca - Não comprimir em paralelo.
  • Sempre - Comprimir em paralelo (cuidado com possíveis problemas de memória).
  • Automático - Decidir automaticamente se deve usar compressão paralela com base nas entradas.

Veja como definir o modo de compressão paralela ao compactar múltiplos arquivos com a biblioteca ZIP Aspose C#:

Aprenda Mais Sobre a Biblioteca ZIP em C# .NET

Para aprofundar seu entendimento sobre a biblioteca ZIP em C#, explore os seguintes recursos:

Experimente Nossa Ferramenta de Compressão ZIP Online

Você também pode experimentar nosso aplicativo online gratuito baseado no Aspose.ZIP for .NET para compactar arquivos em arquivos ZIP sem esforço.

Conclusão

Neste artigo, você aprendeu como criar arquivos ZIP programaticamente em C#. Os exemplos de código fornecidos demonstram como adicionar arquivos e pastas a arquivos ZIP, criar arquivos ZIP protegidos por senha usando métodos ZipCrypto e AES, e configurar compressão paralela. Se você tiver alguma dúvida ou precisar de mais assistência, sinta-se à vontade para entrar em contato através do nosso fórum.

Veja Também

Unrar ou Extrair Arquivos usando C#Descompactar Arquivos em Arquivos ZIP usando C#Criar Arquivos 7z (7-Zip) em C# .NET
Abrir ou Extrair Arquivo 7z (7zip) em C# .NETCriar e Extrair Arquivos GZip usando C#Converter Arquivos RAR para Arquivo ZIP em C#
Converter Arquivos ZIP para TAR em C#Criar um Arquivo ZIP Simples em C#Criar Arquivo Auto-extrátil Executável em C#
Criar Arquivos TAR.GZ e TAR.XZ em C#Excluir Arquivos em um Arquivo ZIP em C#Extrair Arquivos ZIP Aninhados em C#
Mesclar Múltiplos Arquivos ZIP ou TAR em C#Como Criar Arquivos ZIPExtrair 7z Online