Criar ZIP em C#

Introdução aos Arquivos ZIP em C#

Arquivos ZIP são essenciais para comprimir e organizar arquivos e pastas em um único contêiner. Eles não apenas reduzem o tamanho dos arquivos para armazenamento e transmissão eficientes, mas também mantêm metadados e podem ser criptografados para fins de segurança. Este artigo o guiará por vários métodos para criar arquivos ZIP programaticamente em C#, cobrindo operações como adicionar arquivos e pastas, criar arquivos protegidos por senha e aplicar criptografia AES.

O que Você Aprenderá

Neste artigo, você descobrirá como:

Biblioteca ZIP C#

A Aspose.ZIP para .NET é uma ferramenta poderosa para lidar com operações de arquivos ZIP dentro de aplicações .NET. Ela simplifica o processo de compactação ou descompactação de arquivos e pastas e suporta criptografia AES para maior segurança. Você pode instalar facilmente esta biblioteca pelo 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 demonstrando 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, pode usar várias abordagens:

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 Arquivos

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#, você pode seguir 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 é alcançado ao utilizar 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 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 criptografia AES, use a classe AesEcryptionSettings. Abaixo está um exemplo de código demonstrando como criar um ZIP protegido por senha com criptografia AES em C#:

Definir Modo de Compressão Paralela

Para um manuseio eficiente de várias 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 C# da Aspose:

Aprenda Mais Sobre a Biblioteca ZIP C# .NET

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

Experimente Nossa Ferramenta Online de Compressão ZIP

Você também pode experimentar nosso aplicativo online gratuito baseado na Aspose.ZIP para .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 de criptografia, e configurar a 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

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 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 Vários Arquivos ZIP ou TAR em C#Como Criar Arquivos ZIPExtrair 7z Online