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

Como abrir um arquivo ZIP em C#

ZIP é um formato de sistema de arquivo de entrada de arquivo que suporta compressão de dados sem perda. Um arquivo ZIP pode conter um ou mais arquivos ou diretórios que podem ter sido comprimidos. O formato de arquivo ZIP permite vários algoritmos de compressão, embora o DEFLATE seja o mais comum. O formato ZIP foi rapidamente adotado por muitos utilitários de software. Os principais fornecedores de sistemas operacionais incluíram suporte a arquivos ZIP há muito tempo. A Microsoft incluiu suporte a arquivos ZIP desde o Windows 98 e o restante seguiu o exemplo.

Neste blog, exploraremos uma maneira moderna, fácil e eficiente de abrir arquivos de arquivo ZIP ou arquivos extraídos usando o IronZIP. Vamos aprender sobre arquivos ZIP em geral e suas vantagens. Em seguida, veremos as opções disponíveis no namespace do sistema para trabalhar com o formato de arquivo ZIP. Em seguida, exploraremos instruções passo a passo para abrir o arquivo ZIP, extrair o arquivo ZIP para uma pasta temporária, criar um novo arquivo ZIP e adicionar arquivos a arquivos ZIP existentes.

Vantagens do uso de arquivos ZIP em aplicações de software

  1. Compressão: Esta técnica reduz o tamanho dos arquivos/pastas arquivados usando vários algoritmos de compressão como Implode, Deflate, Deflate64, Bzip2, LZMA, WavPack, PPMd, etc.
  2. Tempo de Transferência Reduzido: Tamanhos de arquivo menores significam tempos de transferência mais rápidos, especialmente ao enviar arquivos pela Internet. Isso é particularmente vantajoso para anexos de e-mail e upload ou download de arquivos de sites.
  3. Consolidação de Arquivos: Arquivos ZIP permitem que você consolide vários arquivos em um único arquivo, reduzindo o número de arquivos que você precisa gerenciar. Isso é útil para organizar projetos ou distribuir software que consiste em vários arquivos.
  4. Proteção por Senha: Muitas utilidades de ZIP fornecem a opção de proteger o arquivo por senha, adicionando uma camada de segurança aos seus arquivos. Isso é útil quando você deseja restringir o acesso ao conteúdo do arquivo ZIP.

Criar Arquivos ZIP e Extrair Arquivos ZIP usando o IronZIP

Introdução à biblioteca IronZIP e documentação pode ser encontrada aqui. Em aplicações C#, arquivos ZIP podem ser criados e extraídos de várias maneiras. O pacote IronZIP NuGet possui todas as funcionalidades para arquivar arquivos em diferentes formatos: ZIP, TAR, GZIP e BZIP2. Abaixo estão os passos de exemplo sobre como usar o IronZIP na programação de aplicações modernas para construir aplicativos de próxima geração para abrir arquivos ZIP, extrair arquivos ZIP, criar novos arquivos ZIP, etc.

Passo 1. Criar Aplicação Console .NET Core

Criar projeto

Aplicação console .NET pode ser criada usando o Visual Studio. Abra o Visual Studio e selecione Criar projeto. Aqui você pode ver vários templates para criar um projeto. A maneira mais fácil de demonstrar ou testar o código é criando uma aplicação console. Selecionaremos o template de projeto Aplicativo Console.

Como Abrir Arquivo Zip em C#: Figura 1 - Novo Projeto

Digite o nome do projeto

Na janela abaixo, você pode inserir o nome do projeto, o local do projeto para armazenar no sistema de arquivos e, por último, o caminho para a pasta da solução. Você pode manter as pastas da solução e do projeto iguais ou tê-las em pastas diferentes.

Como Abrir Arquivo Zip em C#: Figura 2 - Configurar Projeto

Selecione a versão do .NET Framework

O próximo passo é selecionar a versão do .NET Framework para o projeto. Se você deseja desenvolver em uma versão específica, então especifique a versão que você gosta. Caso contrário, selecione sempre a versão estável mais recente para criar um projeto. A versão mais recente pode ser baixada do site da Microsoft. Em seguida, clique em Criar para gerar o aplicativo de console.

Como Abrir Arquivo Zip em C#: Figura 3 - Framework Alvo

Isso criará o projeto padrão a partir do modelo e armazenará os arquivos do projeto e da solução nos diretórios especificados. Uma vez criado o projeto, ele parecerá semelhante ao abaixo. Às vezes, a classe não é usada no program.cs nas versões mais recentes.

// Import necessary namespaces
using System;

// Define the namespace
namespace MyApp // Note: actual namespace depends on the project name.
{
    // Define the Program class
    internal class Program
    {
        // Main method: Entry point of the application
        static void Main(string[] args)
        {
            // Print a welcome message
            Console.WriteLine("Hello, World!");
        }
    }
}
// Import necessary namespaces
using System;

// Define the namespace
namespace MyApp // Note: actual namespace depends on the project name.
{
    // Define the Program class
    internal class Program
    {
        // Main method: Entry point of the application
        static void Main(string[] args)
        {
            // Print a welcome message
            Console.WriteLine("Hello, World!");
        }
    }
}
$vbLabelText   $csharpLabel

Para criar um novo arquivo ZIP e extrair todos os arquivos do arquivo ZIP, podemos usar o System.IO.Compression das bibliotecas padrão. O código a seguir demonstra como usar ZipFile.OpenRead e ZipFile.Open métodos estáticos para abrir arquivos ZIP ou extrair arquivos ZIP.

// Import necessary namespaces
using System;
using System.IO;
using System.IO.Compression;

public class ZipExample
{
    public static void Main()
    {
        Console.WriteLine("-----------Zip - Unzip-----------");

        // Method to add a file entry to the ZIP archive
        static void AddEntry(string filePath, ZipArchive zipArchive)
        {
            // Get file name from the file path
            var file = Path.GetFileName(filePath);

            // Create a new entry in the ZIP archive for the file
            zipArchive.CreateEntryFromFile(filePath, file);
        }

        // Name of the ZIP file to be created
        var zip = "myFile.zip";

        // Open or create the ZIP file for updating
        using (ZipArchive archive = ZipFile.Open(zip, ZipArchiveMode.Update))
        {
            // Add files to the archive
            AddEntry("file1.txt", archive);
            AddEntry("file2.txt", archive);
        }

        // Directory where we want to extract the ZIP files
        var dirToExtract = "extract";

        // Create the directory if it does not exist
        if (!Directory.Exists(dirToExtract))
        {
            Directory.CreateDirectory(dirToExtract);
        }

        // Extract the contents of the ZIP file to the specified directory
        ZipFile.ExtractToDirectory(zip, dirToExtract);

        // Indicate that extraction is complete
        Console.WriteLine("Files extracted to: " + dirToExtract);
    }
}
// Import necessary namespaces
using System;
using System.IO;
using System.IO.Compression;

public class ZipExample
{
    public static void Main()
    {
        Console.WriteLine("-----------Zip - Unzip-----------");

        // Method to add a file entry to the ZIP archive
        static void AddEntry(string filePath, ZipArchive zipArchive)
        {
            // Get file name from the file path
            var file = Path.GetFileName(filePath);

            // Create a new entry in the ZIP archive for the file
            zipArchive.CreateEntryFromFile(filePath, file);
        }

        // Name of the ZIP file to be created
        var zip = "myFile.zip";

        // Open or create the ZIP file for updating
        using (ZipArchive archive = ZipFile.Open(zip, ZipArchiveMode.Update))
        {
            // Add files to the archive
            AddEntry("file1.txt", archive);
            AddEntry("file2.txt", archive);
        }

        // Directory where we want to extract the ZIP files
        var dirToExtract = "extract";

        // Create the directory if it does not exist
        if (!Directory.Exists(dirToExtract))
        {
            Directory.CreateDirectory(dirToExtract);
        }

        // Extract the contents of the ZIP file to the specified directory
        ZipFile.ExtractToDirectory(zip, dirToExtract);

        // Indicate that extraction is complete
        Console.WriteLine("Files extracted to: " + dirToExtract);
    }
}
$vbLabelText   $csharpLabel

No código acima, um arquivo ZIP chamado myFile.zip é usado com o namespace do sistema. O método Open é usado para abrir o arquivo ZIP em um modo especificado. Isso também pode ser usado para criar novos arquivos de arquivo ZIP. Uma vez aberto, podemos adicionar uma nova entrada de arquivo usando o método AddEntry, e então ExtractToDirectory extrai arquivos de arquivo ZIP para o diretório especificado. Se o diretório não existir, ele é criado usando Directory.CreateDirectory.

Passo 2. Instalando IronZIP usando o Gerenciador de Pacotes NuGet

Abra o Gerenciador de Projetos no Visual Studio e procure pelo pacote IronZIP. Em seguida, selecione a versão mais recente e clique em Instalar. Você pode alterar a versão a ser instalada no menu suspenso. Em seguida, clique em Instalar.

Como Abrir Arquivo Zip em C#: Figura 4 - Gerenciador de Pacotes NuGet

Crie um Arquivo de Arquivo ZIP e adicione arquivos usando IronZIP

Como Abrir Arquivo Zip em C#: Figura 5 - IronZIP

IronZIP é uma biblioteca de compressão e descompressão de arquivo desenvolvida pela Iron Software. Além do formato ZIP, amplamente utilizado, ele também é compatível com TAR, GZIP e BZIP2.

IronZIP é uma Biblioteca de Arquivo ZIP C# que prioriza precisão, facilidade de uso e velocidade. Sua API de fácil uso permite que os desenvolvedores adicionem funcionalidades de arquivo a projetos .NET modernos em minutos.

IronZIP oferece muitas vantagens em comparação com a biblioteca System.IO.Compression. Você pode especificar a taxa de compressão desejada durante a compressão e também usar diferentes algoritmos de compressão como ZIP, TAR, GZIP, BZIP2. Ele também suporta plataformas móveis, web e desktop e várias versões do .NET.

// Setup: Specify the path for the new ZIP archive
var archivePath = "ironZip.zip";

// Check if the archive already exists, and delete it if so
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}

// Use IronZIP library to create a new ZIP archive
using (var archive = new IronZipArchive(9)) // Compression level: 9 for maximum compression
{
    // Add files to the ZIP archive
    archive.Add("file1.txt");
    archive.Add("file2.txt");

    // Save the archive to the specified path
    archive.SaveAs(archivePath);
}
// Setup: Specify the path for the new ZIP archive
var archivePath = "ironZip.zip";

// Check if the archive already exists, and delete it if so
if (File.Exists(archivePath))
{
    File.Delete(archivePath);
}

// Use IronZIP library to create a new ZIP archive
using (var archive = new IronZipArchive(9)) // Compression level: 9 for maximum compression
{
    // Add files to the ZIP archive
    archive.Add("file1.txt");
    archive.Add("file2.txt");

    // Save the archive to the specified path
    archive.SaveAs(archivePath);
}
$vbLabelText   $csharpLabel

O código-fonte inicial é configurado especificando o nome do arquivo de arquivo ZIP e verificando se o diretório especificado existe. Em seguida, arquivamos os arquivos para criar um arquivo ZIP usando o método Add. O segundo parâmetro no parâmetro de compressão é 1 para menor e 9 para maior. Os arquivos de texto podem ser comprimidos ao máximo usando 9 sem perda, e arquivos de imagem podem usar compressão menor para evitar perda de dados.

Abra o Arquivo de Arquivo ZIP Usando IronZIP

A classe IronArchive também pode ser usada para extrair os arquivos do arquivo ZIP. Todos os arquivos são extraídos usando IronArchive.ExtractArchiveToDirectory, o que ajuda a extrair todos os arquivos para diretórios específicos como abaixo.

// Directory to extract all files from the ZIP archive
var extractionPath = "IronZipFiles";

// Check if the directory exists; if not, create it
if (!Directory.Exists(extractionPath))
{
    Directory.CreateDirectory(extractionPath);
}

// Extract all files from the specified ZIP archive to the directory
IronArchive.ExtractArchiveToDirectory("ironZip.zip", extractionPath);
// Directory to extract all files from the ZIP archive
var extractionPath = "IronZipFiles";

// Check if the directory exists; if not, create it
if (!Directory.Exists(extractionPath))
{
    Directory.CreateDirectory(extractionPath);
}

// Extract all files from the specified ZIP archive to the directory
IronArchive.ExtractArchiveToDirectory("ironZip.zip", extractionPath);
$vbLabelText   $csharpLabel

O código acima extrai arquivos ZIP para um diretório. O código verifica se o diretório existe, e, se não, o arquivo de arquivo ZIP é extraído para o diretório especificado.

Licenciamento (Teste Gratuito Disponível)

Para que o código acima funcione, é necessária uma chave de licença. Esta chave precisa ser colocada em appsettings.json.

{
    "IronZip.LicenseKey": "your license key"
}

Uma licença de avaliação está disponível para desenvolvedores mediante registro aqui, e sim, não é necessário cartão de crédito para uma licença de avaliação. Pode-se fornecer o e-mail e registrar-se para uma avaliação gratuita.

Adicione Arquivos a um Arquivo de Arquivo ZIP Existente

Use o método estático FromFile de IronZIP para abrir um arquivo existente. Este método também requer especificar o nome do arquivo do novo arquivo que será criado como saída.

// Path to a new file to be added to the existing ZIP archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";

// Open the existing ZIP archive and add a new file
using (var file = IronArchive.FromFile("ironZip.zip", archivePlusPath))
{
    // Add additional files to the existing archive
    file.Add(file3);
}
// Path to a new file to be added to the existing ZIP archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";

// Open the existing ZIP archive and add a new file
using (var file = IronArchive.FromFile("ironZip.zip", archivePlusPath))
{
    // Add additional files to the existing archive
    file.Add(file3);
}
$vbLabelText   $csharpLabel

O código usa o método estático IronArchive.FromFile para abrir o arquivo ZIP existente e depois adicionar o novo arquivo como uma entrada de arquivo. Uma vez que o objeto do arquivo é descartado, o arquivo atualizado é salvo com sucesso.

Atualizações

A biblioteca IronZIP é constantemente atualizada com base no feedback de clientes/usuários, e todas as atualizações podem ser encontradas aqui.

Conclusão

Em conclusão, a programação de arquivos ZIP é uma habilidade essencial a desenvolver na construção de aplicativos modernos, onde as despesas com armazenamento e transferência de dados são cobradas pelos provedores de hospedagem na nuvem. Conhecer essa habilidade pode ajudar os programadores a reduzir o custo da aplicação e melhorar o desempenho da aplicação.

Seguindo os passos de instalação e explorando os exemplos de código fornecidos, os desenvolvedores podem rapidamente aproveitar o poder do IronZIP para lidar com tarefas ZIP com facilidade. À medida que mais e mais aplicações são modernizadas e movidas para a nuvem, ter uma biblioteca ZIP confiável como IronZIP equipa os desenvolvedores de C# com as ferramentas necessárias para atender às demandas do desenvolvimento moderno de aplicações. Portanto, aproveite o poder do IronZIP e desbloqueie novas possibilidades para trabalhar com arquivos ZIP em suas aplicações C#.

IronZIP oferece amplo suporte para seus desenvolvedores. Para saber mais sobre como o IronZIP para C# funciona, visite aqui. IronZIP oferece uma licença de teste gratuita, que é uma ótima oportunidade para conhecer o IronZIP e seus recursos.

Iron Software possui várias outras bibliotecas; explore-as para adquirir mais conhecimento e atualizar suas habilidades para programar/desenvolver aplicações modernas.

Perguntas frequentes

Como faço para abrir um arquivo ZIP em C#?

Você pode abrir um arquivo ZIP em C# usando a biblioteca System.IO.Compression . Como alternativa, o IronZIP oferece funcionalidades avançadas para manipulação de arquivos ZIP, proporcionando uma maneira mais fácil e eficiente de gerenciar seus arquivos compactados.

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

Com o IronZIP, você pode extrair arquivos de um arquivo ZIP usando o método IronArchive.ExtractArchiveToDirectory . Esse método exige que você especifique o arquivo ZIP e o diretório de destino para a extração.

Quais são os benefícios de usar arquivos ZIP no desenvolvimento de aplicativos?

Os arquivos ZIP reduzem o tamanho dos arquivos, o que resulta em tempos de transferência mais rápidos e na capacidade de consolidar vários arquivos em um único arquivo compactado. O IronZIP aprimora esses benefícios com recursos adicionais, como a especificação de taxas de compressão e o suporte a múltiplos formatos.

Como adiciono arquivos a um arquivo ZIP existente em C#?

Para adicionar arquivos a um arquivo ZIP existente usando o IronZIP, utilize o método IronArchive.FromFile para abrir o arquivo e, em seguida, use o método Add para incluir novos arquivos. Salve o arquivo atualizado para concluir o processo.

Posso criar um novo arquivo ZIP e adicionar arquivos a ele usando o IronZIP?

Sim, com o IronZIP, você pode criar um novo arquivo ZIP especificando o caminho do arquivo e adicionando arquivos usando o método Add . O arquivo é então salvo usando o método SaveAs .

Como posso instalar o IronZIP usando o gerenciador de pacotes NuGet?

Para instalar o IronZIP através do Gerenciador de Pacotes NuGet, abra o Gerenciador de Projetos no Visual Studio, procure por IronZIP, selecione a versão mais recente e clique em Instalar. Isso adicionará o IronZIP ao seu projeto, habilitando o gerenciamento de arquivos ZIP.

O IronZIP suporta múltiplos formatos de compressão?

Sim, o IronZIP suporta vários formatos de compressão, incluindo ZIP, TAR, GZIP e BZIP2, oferecendo flexibilidade para diversas necessidades de aplicação.

Existe algum período de teste gratuito disponível para o IronZIP?

Sim, o IronZIP oferece um período de teste gratuito para desenvolvedores. Você pode se cadastrar no site da Iron Software para acessar o período de teste sem precisar de cartão de crédito.

O que torna o IronZIP uma escolha adequada para o desenvolvimento de aplicações modernas?

O IronZIP é conhecido por sua facilidade de uso, velocidade e compatibilidade multiplataforma. Essas características, juntamente com suas funcionalidades avançadas, o tornam uma escolha ideal para o desenvolvimento de aplicações modernas.

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