Ir para o conteúdo do rodapé
COMPARAR COM OUTROS COMPONENTES

Tutorial de como criar arquivos ZIP para desenvolvedores C# usando o IronXL

Introdução ao ZipArchive

Sempre que você pensa em enviar um arquivo em formato compactado, a primeira coisa que vem à mente geralmente é um Arquivo Zip. Um arquivo zip é um formato popular para compactar e empacotar um único arquivo ou uma coleção inteira em um único arquivo. No entanto, quando há um grande volume de arquivos para compactar, trabalhar com eles pode se tornar frustrante, pois você teria que arquivar e formatar um por um. Mas não precisa ser assim. Tarefas de grande volume precisam de automação para serem feitas programaticamente. Podemos usar o IronZip, uma biblioteca simples mas intuitiva, para realizar tudo isso e mais.

Neste artigo, discutiremos brevemente as principais funcionalidades e recursos do IronZip e como ele pode ajudar você a automatizar melhor seu fluxo de trabalho, aumentar a eficiência e eliminar tarefas manuais suscetíveis a erros.

Criando um novo arquivo zip a partir de uma pasta ou arquivos

Abaixo está um exemplo que recebe vários arquivos, compacta em um arquivo e os exporta após a operação. Todos os exemplos neste artigo estão encapsulados no método static void Main() para evitar blocos de código repetidos.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Create an empty ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Add files to the ZIP archive
            archive.Add("./assets/image1.jpg");
            archive.Add("./assets/image2.jpg");
            archive.Add("./assets/image3.jpg");

            // Export the ZIP archive to a file
            archive.SaveAs("output.zip");
        }
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Create an empty ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Add files to the ZIP archive
            archive.Add("./assets/image1.jpg");
            archive.Add("./assets/image2.jpg");
            archive.Add("./assets/image3.jpg");

            // Export the ZIP archive to a file
            archive.SaveAs("output.zip");
        }
    }
}
$vbLabelText   $csharpLabel
  1. Primeiro, importamos o IronZip.
  2. Em seguida, usando o IronZip, criamos um arquivo.
  3. Chamamos archive.Add() para adicionar vários arquivos ao arquivo. Lembre-se de que os nomes dos caminhos devem ser caminhos absolutos, ou a operação falhará em encontrar os arquivos correspondentes.
  4. Finalmente, chamamos archive.SaveAs() para exportar o arquivo zip como output.zip.

Atualizando um arquivo zip existente com novos arquivos ou modificações

Vamos examinar outro exemplo; desta vez, vamos editar o arquivo zip existente com novos arquivos para mostrar a funcionalidade do IronZip.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive
        using (var archive = IronZipArchive.FromFile("existing.zip"))
        {
            // Add additional files to the existing ZIP archive
            archive.Add("./assets/image3.png");
            archive.Add("./assets/image4.png");

            // Export the updated ZIP archive to a new file
            archive.SaveAs("result.zip");
        }
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive
        using (var archive = IronZipArchive.FromFile("existing.zip"))
        {
            // Add additional files to the existing ZIP archive
            archive.Add("./assets/image3.png");
            archive.Add("./assets/image4.png");

            // Export the updated ZIP archive to a new file
            archive.SaveAs("result.zip");
        }
    }
}
$vbLabelText   $csharpLabel
  1. Primeiro, importamos o IronZip.
  2. Usando o IronZip, criamos um arquivo, mas desta vez, importamos o arquivo zip existente com IronZipArchive.FromFile().
  3. Chamamos archive.Add() para adicionar os arquivos desejados ao arquivo. Lembre-se de que os nomes dos caminhos devem ser caminhos absolutos, ou a operação falhará em encontrar os arquivos existentes.
  4. Finalmente, chamamos archive.SaveAs() para exportar o arquivo zip atualizado como result.zip.

Como você pode ver no código acima, a operação e o formato são semelhantes aos usados para criar e adicionar arquivos a um arquivo Zip. A principal diferença é que importamos o arquivo zip em vez disso, mostrando a funcionalidade simples mas intuitiva do IronZip.

Extraindo arquivos de um arquivo Zip

Também podemos usar o IronZip para extrair arquivos de um arquivo Zip ou pacote Zip. Vamos rever isso em outro exemplo.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract the ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract the ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
    }
}
$vbLabelText   $csharpLabel

Importamos o IronZip e chamamos IronZipArchive.ExtractArchiveToDirectory(). Este método extrai o conteúdo do arquivo zip existente para o diretório de destino especificado.

Além disso, em casos onde você precisa lidar com arquivos zip protegidos por senha, podemos usar outro método para extrair os arquivos.

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract the protected ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract the protected ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
    }
}
$vbLabelText   $csharpLabel

Por fim, passamos outro parâmetro: a senha para o arquivo zip protegido. O restante da operação é igual ao mostrado acima.

Tópicos Avançados e Melhores Práticas

Os exemplos de código para adicionar, extrair e criar arquivos discutidos acima são os mais comuns ao lidar com arquivos zip. No entanto, para um uso mais avançado, como extrair outros formatos ou simplesmente visualizar o conteúdo do arquivo, o IronZIP tem tudo o que você precisa e mais.

Recursos Avançados do IronZIP

  • Compatibilidade cruzada: IronZIP é compatível com uma ampla gama de versões .NET, incluindo .NET Core (3.1+), Standard (2.0+) e .NET Framework (4.6.2+). A biblioteca também funciona na Web (Blazor), Mobile (MAUI), Desktop (WPF) e Console. Isso permite que os desenvolvedores transcendam as limitações de plataforma e versão.

  • Gerando Arquivos: Além do formato ZIP, o IronZIP suporta a criação de arquivos TAR, GZIP e BZIP2.

  • Extraindo Arquivos: Extraia arquivos e descompacte arquivos facilmente com o IronZIP usando um único bloco de código, como demonstrado acima.

  • Adicionando Arquivos e Sistemas de Arquivos: O IronZIP auxilia na manipulação de arquivos zip adicionando imagens, arquivos de texto e documentos (como PDFs, DOCX e XLSX), bem como arquivos de áudio como MP3 e WAV. Ele pode até mesmo compactar sistemas de arquivos inteiros ou arquivos de texto individuais em um archive ZipArchive.

  • Exportar e Criar: Você pode proteger arquivos com senha usando os padrões AES128 e AES256. Além disso, você pode gerar e exportar formatos como TAR, GZIP e BZIP2.

  • Níveis de Compressão Personalizados: O IronZIP permite que os desenvolvedores ajustem as configurações de compressão para ajustar o algoritmo às suas necessidades.

  • Editando Arquivos: Adicione, extraia ou exclua facilmente entradas de arquivo em um arquivo usando o IronZIP como uma solução abrangente para operações relacionadas à edição.

  • Propriedades de Entrada de Arquivo: O IronZIP fornece a capacidade de definir comentários opcionais de arquivo e recuperar nomes de arquivos dentro do arquivo sem extraí-los, auxiliando na inclusão de comentários específicos para cada arquivo.

  • Escolhas de Licenciamento: O IronZIP oferece escolhas de licenciamento adaptáveis, incluindo versões de teste gratuitas, permitindo que os desenvolvedores selecionem o que melhor atende às suas necessidades.

Conclusão

Lidar com arquivos compactados e arquivos é uma tarefa diária que os desenvolvedores geralmente enfrentam, mas gerenciar um grande volume deles pode ser estressante e propenso a erros humanos. Embora existam opções como System.IO.Compression, usar o IronZIP permite que você alcance mais e resolva rapidamente problemas ao lidar com arquivos compactados. Neste artigo, discutimos os recursos avançados do IronZIP e operações comuns, como criar arquivos zip, excluir entradas ou adicionar arquivos. Entender como realizar essas tarefas programaticamente com o IronZIP leva a maior eficiência, escalabilidade e automação no manuseio de arquivos.

ObserveSystem.IO.Compression é uma marca registrada de seu respectivo proprietário. Este site não é afiliado, endossado ou patrocinado por System.IO.Compression. Todos os nomes de produtos, logotipos e marcas são propriedade de seus respectivos proprietários. As comparações são apenas para fins informativos e refletem informações disponíveis publicamente no momento da redação.

Perguntas frequentes

Como faço para criar um arquivo ZIP a partir de uma pasta em C#?

Para criar um arquivo ZIP a partir de uma pasta em C#, você pode usar a biblioteca IronZip. Primeiro, importe a biblioteca IronZip, crie uma instância de IronZipArchive , adicione a pasta usando archive.AddFolder() e salve-a com archive.SaveAs() .

Qual é o processo para extrair dados de um arquivo ZIP em C#?

Em C#, você pode extrair dados de um arquivo ZIP usando o IronZip chamando o método ` IronZipArchive.ExtractArchiveToDirectory() . Esse método permite especificar um diretório onde o conteúdo será extraído.

Como posso atualizar o conteúdo de um arquivo ZIP programaticamente em C#?

Para atualizar o conteúdo de um arquivo ZIP programaticamente em C#, use o IronZip carregando o arquivo existente com IronZipArchive.FromFile() , depois use archive.Add() para adicionar arquivos ou archive.Remove() para excluir arquivos antes de salvar as alterações com archive.SaveAs() .

O IronZip consegue lidar com arquivos ZIP protegidos por senha?

Sim, o IronZip consegue lidar com arquivos ZIP protegidos por senha. Você pode especificar uma senha ao extrair arquivos usando o método IronZipArchive.ExtractArchiveToDirectory() fornecendo a senha como um parâmetro adicional.

Quais são as vantagens de usar o IronZip em vez do System.IO.Compression para manipular arquivos ZIP?

O IronZip oferece recursos avançados em relação ao System.IO.Compression, como suporte a múltiplos formatos de arquivo, proteção por senha, níveis de compressão personalizados e a capacidade de editar arquivos adicionando ou excluindo arquivos sem extraí-los.

Como o IronZip garante a compatibilidade entre diferentes versões do .NET?

O IronZip garante compatibilidade cruzada ao suportar múltiplas versões do .NET, permitindo que os desenvolvedores integrem a funcionalidade de manipulação de arquivos ZIP em aplicativos executados em diversas plataformas e frameworks.

Quais recursos avançados o IronZip oferece para lidar com arquivos ZIP?

O IronZip oferece recursos avançados, como geração e extração de múltiplos formatos de arquivo (ZIP, TAR, GZIP, BZIP2), proteção por senha, níveis de compressão personalizados e recursos abrangentes de edição sem a necessidade de extrair os arquivos.

É possível gerenciar as propriedades de arquivos dentro de um arquivo ZIP usando o IronZip?

Sim, o IronZip permite gerenciar propriedades de arquivos, como comentários, dentro de um arquivo ZIP sem precisar extrair os arquivos primeiro, aumentando a flexibilidade e a eficiência no gerenciamento de arquivos.

Como posso automatizar a criação e extração de arquivos ZIP em C#?

Você pode automatizar a criação e extração de arquivos ZIP em C# usando o IronZip em um método static void Main() . Isso permite automatizar processos como adicionar arquivos a um arquivo compactado, extrair dados e atualizar arquivos existentes de forma programática.

O IronZip suporta o gerenciamento de sistemas de arquivos inteiros?

Sim, o IronZip suporta a compressão e extração de sistemas de arquivos inteiros, tornando-o adequado para lidar com grandes volumes de dados de forma eficiente.

Jordi Bardia
Engenheiro de Software
Jordi é extremamente proficiente em Python, C# e C++, e quando não está utilizando suas habilidades na Iron Software, dedica-se à programação de jogos. Compartilhando as responsabilidades por testes, desenvolvimento e pesquisa de produtos, Jordi agrega imenso valor à melhoria contínua dos produtos. Essa experiência diversificada o mantém ...
Leia mais

Iron Support Team

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