Compactando e extraindo diretórios em C# - Dica

Veja neste artigo como compactar e extrair diretórios completos em C# utilizando a classe ZipFile.

Muitas vezes precisamos criar ou ler arquivos ZIP em aplicações .NET para compactar ou extrair um diretório completo. Utilizando algumas bibliotecas de terceiros, a saída muitas vezes é inserir ou extrair um a um os arquivo do/para o diretório.

No .NET Framework 4.5 essa tarefa se tornou bastante simples, basta usar a classe ZipFile do namespace System.IO.Compreesion e seus métodos estáticos CreateFromDirectory e ExtractToDirectory.

Para utilizar essa class, o primeiro passo é importar a DLL System.IO.Compression.FileSystem, clicando com a direita na pasta References, no Solution Explorer, e em Add Reference. Na categoria Assemblies>Framework, é só selecionar a DLL e clicar em OK, conforme a Figura 1.


Figura 1: Importando a DLL

Em seguida, já no código, é preciso importar o namespace System.IO.Compression na seção using (Listagem 1).

Listagem 1: Importando o namespace

using System.IO.Compression;

Pronto, agora já se pode utilizar a classe ZipFile para compactar um diretório para um arquivo ZIP ou extrair um arquivo ZIP para um diretório, de acordo com as Listagens 2 e 3 a seguir.

Listagem 2: Compactando um diretório

string diretorio = @"D:\Minha Pasta";//Caminho do diretório string arquivo = @"D:\MinhaPasta.zip";//Caminho do arquivo zip a ser criado ZipFile.CreateFromDirectory(diretorio, arquivo);

Listagem 3: Extraindo um diretório

string diretorio = @"D:\Minha Pasta";//Caminho do diretório a ser criado string arquivo = @"D:\MinhaPasta.zip";//Caminho do arquivo zip a ser extraído ZipFile.ExtractToDirectory(arquivo, diretorio);

O método CreateFromDirectory possui ainda uma sobrecarga que recebe dois parâmetros adicionais:

Por hoje é só. Uma dica rápida, mas que pode se mostrar bastante útil no dia a dia de quem trabalha com compressão de arquivos nas aplicações.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados