
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:
- Criar um arquivo ZIP usando C#
- Adicionar múltiplos arquivos a um arquivo ZIP
- Adicionar pastas a um arquivo ZIP
- Criar um arquivo ZIP protegido por senha usando ZipCrypto
- Criptografar arquivos ZIP com criptografia AES
- Definir modo de compressão paralela
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:
- Crie um objeto FileStream para o arquivo ZIP de saída.
- Abra o arquivo de origem como um objeto FileStream.
- Instancie a classe Archive.
- Adicione o arquivo ao arquivo usando o método Archive.CreateEntry(string, FileStream).
- 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:
- Crie um objeto FileStream para o arquivo ZIP de saída.
- Instancie a classe Archive.
- Use a classe DirectoryInfo para especificar a pasta que você deseja compactar.
- Adicione a pasta ao ZIP usando o método Archive.CreateEntries(DirectoryInfo).
- 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.