Ir para o conteúdo do rodapé
USANDO O IRONZIP

Como compactar arquivos em uma pasta usando C#

Arquivos ZIP são arquivos que contêm um ou mais arquivos ou pastas comprimidos usando o formato ZIP. É uma forma comum de comprimir e arquivar múltiplos arquivos ou pastas em um único arquivo. Eles podem reduzir o tamanho dos dados, economizar espaço em disco e facilitar a transferência de arquivos pela internet. Neste artigo, você aprenderá como trabalhar com arquivos ZIP em C# usando a biblioteca IronZIP. Você verá como criar, ler, extrair e atualizar arquivos ZIP programaticamente, bem como como usar vários recursos do IronZIP, como criptografia, proteção por senha e níveis de compressão. Ao final deste artigo, você será capaz de usar o IronZIP para lidar com arquivos ZIP em suas aplicações C# com facilidade.

O que Vamos Cobrir neste Artigo

  1. Instalar IronZIP em nosso Projeto
  2. Criar um arquivo ZIP
  3. Criar arquivo ZIP Protegido por Senha
  4. Extrair arquivo ZIP
  5. Extrair Arquivo ZIP Protegido por Senha
  6. Acessar Arquivo ZIP Existente

O que é IronZip?

IronZIP é uma poderosa e versátil biblioteca C# de arquivos ZIP que permite criar, ler e extrair arquivos ZIP programaticamente. Ela suporta vários formatos de arquivo, como ZIP, TAR, GZIP e BZIP2. Também suporta proteção por senha, criptografia e níveis de compressão. IronZIP é compatível com .NET 8, 7, 6, Core, Standard e Framework.

IronZIP pode ajudá-lo a lidar com vários casos de uso e benefícios de trabalhar com arquivos ZIP, como:

  1. Criando um sistema de backup: Você pode usar o IronZIP para comprimir e criptografar seus arquivos e pastas importantes em um arquivo ZIP e armazená-los em um local seguro. Desta forma, você pode economizar espaço em disco e proteger seus dados contra acesso não autorizado.
  2. Enviando anexos de email: Você pode usar o IronZIP para reduzir o tamanho dos seus anexos de email, compactando-os em um arquivo ZIP. Isso pode ajudá-lo a evitar exceder o limite de tamanho de arquivo e acelerar o processo de transmissão.
  3. Baixar arquivos da web: Você pode usar o IronZIP para baixar e extrair arquivos ZIP da web, como pacotes de software, documentos, imagens e outros tipos de arquivos. Isso pode ajudá-lo a economizar largura de banda e tempo e acessar os arquivos de que precisa com facilidade.

Começando com o IronZIP

Antes de escrever o código, você precisa instalar o pacote NuGet IronZIP em seu projeto C#. IronZIP é uma biblioteca de compressão popular disponível via NuGet.

Instalando a Biblioteca IronZIP

Para instalar o IronZIP, você pode usar o Console do Gerenciador de Pacotes NuGet no Visual Studio. Basta executar o seguinte comando:

Install-Package IronZip

Alternativamente, você pode baixar o pacote diretamente do site oficial do IronZIP. Uma vez instalado, você pode começar adicionando o seguinte namespace no topo do seu código C#.

using IronZip;
using IronZip;
$vbLabelText   $csharpLabel

Criando Arquivos ZIP C# em uma Pasta

Você pode facilmente criar arquivos ZIP em uma pasta usando o IronZIP. O código a seguir compactará todos os arquivos do diretório especificado.

using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
$vbLabelText   $csharpLabel

O código C# acima usa a biblioteca IronZIP para comprimir todos os arquivos em um único arquivo ZIP. O código faz o seguinte:

  • Declara um array de strings chamado fileArray e atribui o resultado do método Directory.GetFiles, passando o caminho do diretório ("D:\Docs") como parâmetro. Este método retorna um array de strings contendo os nomes completos de todos os arquivos no diretório especificado.
  • Cria uma nova instância da classe IronZipArchive, que representa um arquivo ZIP na memória. A instância é atribuída a uma variável chamada archive e está envolvida em uma instrução using, que garante que o arquivo ZIP seja descartado quando o bloco de código terminar.
  • Itera sobre o array fileArray usando um loop foreach, e para cada arquivo, chama o método Add do objeto archive, passando o nome do arquivo como parâmetro. Este método adiciona uma nova entrada ao arquivo ZIP, com o mesmo nome e conteúdo do arquivo.
  • Chama o método SaveAs do objeto archive, passando o nome do arquivo ZIP ("myZipFile.zip") como parâmetro. Este método salva o arquivo ZIP para um arquivo no sistema de arquivos atual.

Desta forma, você pode criar novos arquivos ZIP facilmente usando apenas algumas linhas de código.

Saída

A saída é a seguinte:

Como Compactar Arquivos em Pasta Usando C#: Figura 1 - Arquivos de saída do exemplo de código anterior

Criar um arquivo ZIP protegido por senha

IronZIP fornece um método fácil para criar arquivos ZIP protegidos por senha. O seguinte exemplo de código irá comprimir arquivos e criar um novo arquivo ZIP com uma senha.

using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Set Password and Encryption Method
            archive.Encrypt("myPa55word", EncryptionMethods.AES256);
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
using System;
using System.IO;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Get all files from the specified directory
        string[] fileArray = Directory.GetFiles(@"D:\Docs\");

        // Create a new ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Iterate through each file and add it to the archive
            foreach (var file in fileArray)
            {
                archive.Add(file); // Add files to the ZIP
            }
            // Set Password and Encryption Method
            archive.Encrypt("myPa55word", EncryptionMethods.AES256);
            // Save the archive to a file
            archive.SaveAs("myZipFile.zip");
        }
    }
}
$vbLabelText   $csharpLabel

A linha archive.Encrypt("myPa55word", EncryptionMethods.AES256); define uma senha ("myPa55word") para um arquivo ZIP usando o IronZIP. Isso aumenta a segurança aplicando criptografia AES-256 no arquivo, garantindo que apenas usuários com a senha correta possam acessar seu conteúdo. Este recurso é valioso para proteger dados sensíveis durante o armazenamento ou transferência dentro de aplicativos C#. Você precisa passar o modo especificado do algoritmo de criptografia no segundo parâmetro.

O arquivo é criptografado como mostrado abaixo.

Saída

Como Compactar Arquivos em Pasta Usando C#: Figura 2 - Arquivo criptografado gerado do exemplo de código anterior

Vimos a demonstração de criação de um arquivo ZIP ao percorrer os diretórios a partir do caminho especificado. Agora, vamos seguir para o exemplo de descompactar arquivos.

Extraindo arquivos de um arquivo ZIP

IronZIP fornece um método para extrair arquivos de um arquivo ZIP em C#. O seguinte exemplo de código irá extrair o arquivo compactado dentro de um arquivo ZIP.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles");
    }
}
$vbLabelText   $csharpLabel

O código IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles"); usa o IronZIP para extrair todos os arquivos de "myZipFile.zip" e os coloca no diretório "myExtractedFiles". Este método conciso simplifica o processo de extração de arquivos ZIP em C#, fornecendo uma solução conveniente para tarefas de extração de arquivos.

Saída

A saída é a seguinte:

Como Compactar Arquivos em Pasta Usando C#: Figura 3 - Arquivos de saída do exemplo de código anterior

Como extrair de um arquivo ZIP protegido por senha

IronZIP também fornece um método para extrair arquivos ZIP protegidos por senha. O seguinte código usará o método IronZIP para extrair todos os arquivos e diretórios existentes do arquivo ZIP especificado.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the password-protected ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract all files from the password-protected ZIP archive to the specified directory
        IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word");
    }
}
$vbLabelText   $csharpLabel

O método ExtractArchiveToDirectory da classe IronZipArchive extrai todas as entradas de um arquivo ZIP para um diretório especificado. Ele passa três argumentos para o método: o caminho do arquivo ZIP ("myZipFile.zip"), o caminho do diretório de destino ("myExtractedFiles") e a senha do arquivo ZIP ("myPa55word").

Desta forma, você pode facilmente extrair arquivos ZIP protegidos por senha.

Como acessar um arquivo existente

IronZIP fornece métodos para acessar o arquivo existente e visualizar todas as entradas presentes no arquivo.

using System;
using System.Collections.Generic;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive with a password
        using (var archive = new IronZipArchive("myZipFile.zip", "myPa55word"))
        {
            // Get entries list
            List<string> names = archive.GetArchiveEntryNames();
            // Iterate through each entry name and print it
            foreach (string name in names)
            {
                Console.WriteLine(name);
            }
        }
    }
}
using System;
using System.Collections.Generic;
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive with a password
        using (var archive = new IronZipArchive("myZipFile.zip", "myPa55word"))
        {
            // Get entries list
            List<string> names = archive.GetArchiveEntryNames();
            // Iterate through each entry name and print it
            foreach (string name in names)
            {
                Console.WriteLine(name);
            }
        }
    }
}
$vbLabelText   $csharpLabel

O código C# fornecido usa o IronZIP para criar uma instância IronZipArchive segura, carregando um arquivo ZIP chamado "myZipFile.zip" com a senha "myPa55word". Não passe o parâmetro da senha se o arquivo não estiver criptografado. Em seguida, ele recupera e imprime a lista de nomes de entradas (nomes de arquivos e pastas) dentro do arquivo ZIP criptografado.

O método GetArchiveEntryNames coleta os nomes das entradas, e um loop foreach exibe cada nome no console. Isso demonstra como o IronZIP permite o acesso seguro e a recuperação de informações de entradas de arquivos ZIP protegidos por senha de maneira concisa.

Saída

Como Compactar Arquivos em Pasta Usando C#: Figura 4 - Saída do exemplo de código anterior

Conclusão

Em conclusão, o IronZIP prova ser uma biblioteca C# robusta e versátil para trabalhar com arquivos ZIP. Seus recursos se estendem além da compressão e extração básicas, oferecendo funcionalidades como proteção por senha, criptografia e compatibilidade com vários formatos de arquivo. Seja criando sistemas de backup, gerenciando anexos de e-mail ou baixando arquivos da web, o IronZIP simplifica essas tarefas com simplicidade e eficiência.

Ao integrar o IronZIP em seus aplicativos C#, você obtém uma ferramenta poderosa para lidar com arquivos ZIP, aumentar a segurança dos dados e otimizar processos de transferência de arquivos. Você pode se beneficiar de um teste gratuito conforme necessário.

Perguntas frequentes

Como posso criar um arquivo ZIP a partir de uma pasta em C#?

Você pode usar o IronZIP para criar um arquivo ZIP a partir de uma pasta, iterando pelos arquivos no diretório e adicionando-os a um novo arquivo ZIP. Use a classe IronZipArchive e chame o método SaveAs para salvar o arquivo ZIP.

Como faço para instalar o IronZIP em um projeto C#?

Instale o IronZIP em seu projeto C# usando o Gerenciador de Pacotes NuGet no Visual Studio. Execute o comando Install-Package IronZip no Console do Gerenciador de Pacotes ou faça o download do site oficial do IronZIP.

Quais formatos o IronZIP suporta para manipulação de arquivos ZIP?

O IronZIP suporta vários formatos de arquivo, incluindo ZIP, TAR, GZIP e BZIP2, oferecendo flexibilidade para diferentes necessidades de compressão e arquivamento.

Posso criptografar arquivos ZIP criados em C#?

Sim, você pode criptografar arquivos ZIP usando o IronZIP, aplicando o método Encrypt com AES-256 para proteger seus dados dentro do arquivo.

Como posso extrair arquivos de um arquivo ZIP em C#?

Para extrair arquivos de um arquivo ZIP usando o IronZIP, utilize o método ExtractArchiveToDirectory , especificando o arquivo ZIP de origem e o diretório de destino.

É possível manipular arquivos ZIP protegidos por senha em C#?

Sim, você pode lidar com arquivos ZIP protegidos por senha usando o IronZIP, fornecendo a senha ao usar métodos como ExtractArchiveToDirectory para acessar o conteúdo com segurança.

Quais são as vantagens de usar o IronZIP para gerenciar arquivos ZIP?

O IronZIP simplifica tarefas como backup de arquivos, gerenciamento de anexos de e-mail e downloads da web, oferecendo recursos como criptografia, proteção por senha e suporte a vários formatos de arquivo compactado.

O IronZIP é compatível com o .NET 8 e outras versões?

O IronZIP é compatível com .NET 8, 7, 6, Core, Standard e Framework, o que o torna flexível para integração em diversos projetos C#.

Como os desenvolvedores podem acessar uma versão de avaliação do IronZIP?

Os desenvolvedores podem acessar uma versão de avaliação gratuita do IronZIP visitando a seção de licenciamento ou download do site do IronZIP para avaliar seus recursos.

Qual a vantagem de usar arquivos ZIP para transferência de dados?

Os arquivos ZIP são vantajosos para a transferência de dados, pois reduzem o tamanho dos arquivos, economizam espaço em disco e facilitam o envio eficiente de vários arquivos pela internet.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me