
Como extrair um arquivo ZIP para um diretório em C#
Arquivos ZIP servem como uma maneira conveniente de agrupar vários arquivos e diretórios em um único arquivo. Seja você gerenciando backups, distribuindo software ou compartilhando arquivos, a extração eficiente de arquivos ZIP é crucial. IronZIP, uma poderosa biblioteca .NET, simplifica este processo fornecendo métodos simples.
Como Extrair Arquivo Zip Para Diretório em C#
- Instale a biblioteca IronZIP no seu projeto.
- Use o método
ExtractArchiveToDirectory()fornecido pelo IronZIP. - Especifique o caminho para o seu arquivo ZIP (por exemplo, "output.zip") e o diretório de extração alvo (por exemplo, "extracted").
O que é IronZIP?
IronZIP é uma biblioteca C# versátil que lida com arquivos ZIP dentro de aplicações .NET. Seja você desenvolvendo software para desktop, aplicações web ou ferramentas de automação, o IronZIP simplifica criar, ler e extrair arquivos ZIP.
Principais características
Alto Desempenho: IronZIP tem um motor poderoso para comprimir e descomprimir arquivos, tornando as coisas rápidas e usando menos recursos.
Facilidade de Uso: Os desenvolvedores podem integrar o IronZIP perfeitamente em seus projetos. A biblioteca fornece métodos simples para trabalhar com arquivos ZIP.
Integração com o NuGet: Instale o IronZIP via o Gerenciador de Pacotes NuGet, tornando-o acessível à sua solução de extração de arquivo ziparchive para diretório em C#.
Compatibilidade Multiplataforma: IronZIP suporta várias plataformas, incluindo Windows, Linux e macOS.
Documentação e Tutoriais: Explore a documentação oficial e tutoriais para aprender como utilizar o IronZIP de forma eficaz.
O IronZIP capacita desenvolvedores com uma solução confiável e eficiente, seja para compactar arquivos para distribuição, gerenciar backups ou lidar com arquivos de dados.
Extraindo um Arquivo ZIP para um Diretório
Antes de começarmos, precisamos instalar a Biblioteca IronZIP em nosso Projeto. Podemos adicioná-la usando o Console do Gerenciador de Pacotes NuGet com o seguinte comando:
O comando acima instalará a Biblioteca IronZIP junto com as dependências necessárias em nosso projeto.
Alternativamente, você também pode baixá-la do Gerenciador de Pacotes NuGet para Solução, pesquisando por "IronZIP".
Inclua as diretivas using necessárias no seu código:
using IronZip;
using IronZip.Enum;Imports IronZip
Imports IronZip.EnumExtrair o Arquivo ZIP para o Diretório Especificado
O IronZIP simplifica o processo de extração de um arquivo zip para um diretório. Podemos extrair arquivos usando apenas uma linha de código. O código a seguir irá extrair todos os arquivos no caminho fornecido.
internal class Program
{
static void Main(string[] args)
{
IronZipArchive.ExtractArchiveToDirectory("Contracts.zip", "Contracts");
}
}Friend Class Program
Shared Sub Main(ByVal args() As String)
IronZipArchive.ExtractArchiveToDirectory("Contracts.zip", "Contracts")
End Sub
End ClassA linha de código acima extrai o conteúdo do arquivo "Contracts.zip" e coloca-os em uma pasta de destino chamada "Contracts." É uma maneira conveniente de lidar com arquivos ZIP programaticamente em aplicações C#.
Explicação
IronZipArchive: Esta é uma classe da biblioteca IronZIP. Ela fornece métodos e propriedades para trabalhar com arquivos ZIP..ExtractArchiveToDirectory("Contracts.zip", "Contracts"):- O método
ExtractArchiveToDirectoryé chamado no IronZipArchive. - O primeiro argumento,
"Contracts.zip", representa o caminho para o arquivo ZIP que você deseja extrair. - O segundo argumento,
"Contracts", especifica o diretório de destino onde os arquivos extraídos serão colocados.
- O método
Se os arquivos já existirem em um diretório especificado, irá sobrescrever os arquivos existentes. O arquivo extraído é o seguinte:

Extrair Arquivo ZIP Protegido por Senha
O IronZIP também fornece um método para extrair arquivos compactados protegidos por senha. O exemplo a seguir irá extrair os arquivos de um arquivo ZIP protegido por senha.
IronZipArchive.ExtractArchiveToDirectory("PasswordProtectedContracts.zip", "Contracts", "Pa55w0r2Zip");IronZipArchive.ExtractArchiveToDirectory("PasswordProtectedContracts.zip", "Contracts", "Pa55w0r2Zip")O código acima extrai o conteúdo de um arquivo ZIP protegido por senha chamado "PasswordProtectedContracts.zip" e coloca-os em um diretório chamado "Contracts." A senha especificada garante a extração segura do arquivo ZIP protegido.
Acessar Arquivo Existente
O IronZIP permite o acesso a arquivos ZIP existentes sem extraí-los de um diretório especificado. Esta funcionalidade é importante para cenários como extração de arquivos de arquivos compactados, validação da existência de entradas específicas, ou até mesmo inspeção dinâmica do conteúdo de arquivos ZIP em resposta a interações do usuário.
Visualizar Entradas do Arquivo ZIP
O exemplo de código a seguir irá acessar o arquivo ZIP existente e imprimir suas entradas no console.
using (var zipArchive = new IronZipArchive("Contracts.zip"))
{
// Get Entries list
List<string> names = zipArchive.GetArchiveEntryNames();
foreach (string name in names)
{
Console.WriteLine(name); // Print the name of each entry
}
}Using zipArchive = New IronZipArchive("Contracts.zip")
' Get Entries list
Dim names As List(Of String) = zipArchive.GetArchiveEntryNames()
For Each name As String In names
Console.WriteLine(name) ' Print the name of each entry
Next name
End UsingO código acima usa o IronZIP para verificar o que há dentro de um arquivo ZIP chamado "Contracts.zip". Ele cria um objeto IronZipArchive para obter uma lista de nomes de entradas (como nomes de arquivos) do arquivo usando o método GetArchiveEntryNames. Se o arquivo ZIP estiver protegido por senha, você pode incluir a senha ao criar o objeto IronZipArchive. O código então imprime cada nome de arquivo no console.
Desta forma, podemos trabalhar com entradas especificadas dentro de um arquivo compactado.
O resultado é o seguinte:

Verificar se a Entrada Especificada Existe no Arquivo ZIP
Também podemos verificar se a entrada especificada existe no arquivo ZIP especificado. O código a seguir mostra a demonstração.
using (var zipArchive = new IronZipArchive("Contracts.zip"))
{
if (zipArchive.CheckArchiveEntryExist("Contract1.pdf"))
{
Console.WriteLine("File Exist");
}
}Using zipArchive = New IronZipArchive("Contracts.zip")
If zipArchive.CheckArchiveEntryExist("Contract1.pdf") Then
Console.WriteLine("File Exist")
End If
End UsingO código acima usa a biblioteca IronZIP para verificar se um arquivo chamado "Contracts.zip" contém uma entrada chamada "Contract1.pdf". Ele faz isso criando um objeto IronZipArchive para o arquivo ZIP. Dentro do bloco de código, há uma instrução "if" verificando se "Contract1.pdf" existe no arquivo ZIP. Se existir, imprime "File Exists" no console. Em termos mais simples, este código ajuda a confirmar se um arquivo específico está dentro de um arquivo ZIP, e se estiver, ele avisa.

Excluir Entrada de um Arquivo ZIP Existente
O IronZIP fornece um método para excluir entradas de um arquivo ZIP. O código a seguir irá excluir um arquivo de um ZIP existente.
using (var zipArchive = new IronZipArchive("Contracts.zip"))
{
zipArchive.DeleteArchiveEntry("Contract1.pdf");
}Using zipArchive = New IronZipArchive("Contracts.zip")
zipArchive.DeleteArchiveEntry("Contract1.pdf")
End UsingO código acima demonstra como usar o IronZIP para excluir uma entrada de um arquivo ZIP chamado "Contracts.zip." Dentro do bloco using, o arquivo especificado chamado "Contract1.pdf" é removido do arquivo. Esta operação garante uma gestão eficiente de arquivos ZIP em aplicações C#.
Conclusão
Em conclusão, o IronZIP surge como uma ferramenta valiosa para desenvolvedores C#, simplificando o tratamento de arquivos ZIP em vários cenários, seja extraindo arquivos para uso comercial.

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 bem estruturados e visualmente atraentes.
Artigos relacionados


