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:
- 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 arquivo ZIP com criptografia AES
- Definir modo de compressão paralela
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:
- 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 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:
- 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 é 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.