Create ZIP in C#

Introdução aos Arquivos ZIP

Arquivos ZIP são essenciais para comprimir e consolidar um ou mais arquivos ou pastas em um único contêiner. Este formato não apenas reduz o tamanho do arquivo para armazenamento e transmissão, mas também retém informações de metadados, facilitando a gestão de arquivos. Arquivos ZIP são amplamente utilizados em aplicações de desktop e web para tarefas como upload, download, compartilhamento e segurança de arquivos por meio de criptografia.

Neste artigo, exploraremos vários métodos para criar arquivos ZIP programaticamente em C#. Você aprenderá como:

Biblioteca ZIP em C#

Aspose.ZIP para .NET é uma API robusta projetada para compactar e descompactar arquivos e pastas dentro de aplicações .NET. Ela oferece recursos como criptografia AES para proteger seus arquivos dentro de arquivos ZIP. Você pode facilmente instalar a API a partir do NuGet ou baixar os binários da seção Downloads.

Criar um Arquivo ZIP em C#

Para comprimir um arquivo em um arquivo ZIP, siga estas etapas:

  1. Crie um objeto FileStream para o arquivo ZIP de saída.
  2. Abra o arquivo de origem com um objeto FileStream.
  3. Instancie a classe Archive.
  4. Adicione o arquivo ao arquivo ZIP 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 demonstrando como adicionar um arquivo a um arquivo ZIP usando C#:

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

Para adicionar múltiplos arquivos a um arquivo ZIP, você pode escolher um dos seguintes métodos:

Usando FileStream

Utilize a classe FileStream para adicionar múltiplos arquivos ao arquivo ZIP com o método Archive.CreateEntry(String, FileStream). Veja como:

Usando FileInfo

Alternativamente, você pode usar a classe FileInfo para adicionar arquivos. Este método carrega os arquivos usando a classe FileInfo e os adiciona ao arquivo ZIP com o método Archive.CreateEntry(String, FileInfo). Veja o exemplo abaixo:

Usando o Caminho do Arquivo

Você também pode adicionar arquivos diretamente fornecendo seus caminhos ao método Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings). Veja como:

Adicionar Pastas a um Arquivo ZIP em C#

Adicionar uma pasta a um arquivo ZIP pode ser uma maneira conveniente de incluir múltiplos arquivos. Para compactar uma pasta 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 a ser compactada.
  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 demonstra como adicionar uma pasta a um arquivo ZIP em C#:

Criar um ZIP Protegido por Senha usando ZipCrypto em C#

Para aumentar a segurança, você pode criar arquivos ZIP protegidos por senha usando criptografia ZipCrypto. Isso é alcançado usando a classe ArchiveEntrySettings no construtor da Archive, que permite especificar o tipo de criptografia.

Aqui está um exemplo de como criar um arquivo ZIP protegido por senha usando ZipCrypto em C#:

Criar ZIP Protegido por Senha com Criptografia AES

A biblioteca Aspose.ZIP para .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 a criptografia AES, use a classe AesEcryptionSettings. Veja como criar um arquivo ZIP protegido por senha com criptografia AES em C#:

Definir Modo de Compressão Paralela

Para casos envolvendo múltiplas entradas, você pode configurar a API para compressão paralela usando a classe ParallelOptions. Aspose.ZIP para .NET oferece vários modos de compressão paralela:

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

Aqui está um exemplo demonstrando como definir o modo de compressão paralela ao compactar múltiplos arquivos:

Saiba Mais Sobre a Biblioteca ZIP em C# .NET

Aprofunde-se em nossa API ZIP em C# com os seguintes recursos:

Experimente Arquivos ZIP Online

Explore nosso aplicativo online gratuito, baseado em Aspose.ZIP para .NET, para compactar arquivos em arquivos ZIP facilmente.

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. Além disso, abordamos como criar arquivos ZIP protegidos por senha usando tanto métodos de criptografia ZipCrypto quanto AES. Também discutimos a compressão paralela para lidar com arquivos grandes de forma eficiente. 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

Descompactar 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 Plano em C#Criar um Arquivo Executável Auto-Extraí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