Você precisa compactar arquivos em uma aplicação .NET?
Em meus projetos utilizo a Biblioteca "DotNetZip". Ela compacta arquivos no formato zip para desenvolvimento na plataforma .NET.
Aqui está o link com as versões para download:
Download das DLL's
É bem simples de usar e muito prática, além de ser
FREE.
Seguem exemplos de uso em C#:
CODE
//Instancia o objeto.
//Caso seja em outro diretório, é melhor utilizar o Server.MapPath();
try
{
ZipFile zip = new ZipFile("NOME_PARA_O_ARQUIVO.zip");
zip.AddFile(Server.MapPath("arquivo.extensao"));
zip.AddFile(Server.MapPath("arquivo2.extensao"));
zip.Save();
}
catch (System.Exception ex1)
{
//Exceção disparada caso tenha algum problema
System.Console.Error.WriteLine("exception: " + ex1);
}
Você pode também compactar diretórios inteiros:
CODE
try
{
ZipFile zip = new ZipFile("NOME_PARA_O_ARQUIVO.zip");
zip.AddDirectory(Server.MapPath("diretorio"));
zip.Comment = "This zip was created at " + System.DateTime.Now.ToString("G");
zip.Save();
}
catch (System.Exception ex1)
{
//Exceção disparada caso tenha algum problema
System.Console.Error.WriteLine("exception: " + ex1);
}
E também proteger seus arquivos com senha:
CODE
try
{
ZipFile zip = new ZipFile("NOME_PARA_O_ARQUIVO.zip");
zip.Password= "123456!";
zip.AddDirectory(@"MyDocuments\ProjectX");
zip.Comment = "This zip was created at " + System.DateTime.Now.ToString("G");
zip.Save();
}
catch (System.Exception ex1)
{
//Exceção disparada caso tenha algum problema
System.Console.Error.WriteLine("exception: " + ex1);
}
Lembrando que para cada
projeto que utilizar essa biblioteca, adicione-a via "Add Reference" e em cada arquivo a utilizá-la, adicione no início do código:
CODE
using Ionic.Utils.Zip;
Se não inserir, ao instanciar o objeto, utilize:
CODE
Ionic.Utils.Zip.ZipFile zip = new ZipFile("NOME_PARA_O_ARQUIVO.zip");
Gostei muito de trabalhar com ela, achei uma ótima ferramenta para auxiliar no desenvolvimento.
Abraço e até o próximo.
Comentários:
Ivan disse:
NightSpy disse:
David Cruvinel disse:
ótimo artigo!
Ver o restante dos comentários no fórum (e aproveitar pra comentar também !).