DotNetZip 是一个短小易用的用来操作 zip 文件的 .NET 类库,支持.NET的任何语言,可很方便的创建,读取,和更新zip文件。而且还可以使用在.NETCompact Framework中。
下面是一些简单的例子:
1.加密压缩:
using (ZipFile zip = new ZipFile()) { zip.Password = sPassword; //set pwd zip.AddDirectory(sZipDir); zip.Save(sSavePath + @"\" + sSaveName); }
2.向压缩文件中添加:
using (ZipFile zip = new ZipFile("Backup.zip")) { zip.Password= "123456!"; zip.AddFile("ReadMe.txt"); zip.AddFile("7440-N49th.png"); zip.AddFile("2005_Annual_Report.pdf"); zip.Save(); }
3.解压缩到制定目录:
using (ZipFile zip = ZipFile.Read("D:\\test\\2007.zip")) { foreach (ZipEntry e in zip) { Console.WriteLine("file name:{0}", e.FileName); Console.WriteLine(e.Comment); e.Extract("D:\\test\\pwdata", true); // overwrite == true } }
1.创建/更新压缩文件,zip文件存在则更新,不存在则创建
//注意设置编码,默认中文件名会乱码
using (ZipFile zip = new ZipFile(@"E:\test.zip", System.Text.Encoding.Default))
{
zip.AddDirectory(@"E:\test");//添加文件夹
zip.AddFile(@"E:\房屋租赁协议.doc");//添加文件,文件不存在抛错FileNotFoundException
zip.Save();
}
using (ZipFile zip = new ZipFile(@"E:\test.zip", System.Text.Encoding.Default))
{
zip.AddDirectory(@"E:\test");//添加文件夹
zip.AddFile(@"E:\房屋租赁协议.doc");//添加文件,文件不存在抛错FileNotFoundException
zip.Save();
}
2.列出zip文件中所有的文件
using (ZipFile zip = ZipFile.Read(@"E:\test.zip", System.Text.Encoding.Default))
{
string list = string.Empty;
foreach (ZipEntry entry in zip)
{
list += entry.FileName + "\r\n";
}
MessageBox.Show(list);
}
{
string list = string.Empty;
foreach (ZipEntry entry in zip)
{
list += entry.FileName + "\r\n";
}
MessageBox.Show(list);
}
3.从zip文件中删除一个文件,注意无法直接删除一个文件夹
using (ZipFile zip = ZipFile.Read(@"E:\test.zip", System.Text.Encoding.Default))
{
//zip["房屋租赁协议.doc"] = null;
zip.RemoveEntry("房屋租赁协议.doc");
zip.Save();
}
{
//zip["房屋租赁协议.doc"] = null;
zip.RemoveEntry("房屋租赁协议.doc");
zip.Save();
}
4.从zip文件中解压出一个文件
using (ZipFile zip = ZipFile.Read(@"E:\test.zip", System.Text.Encoding.Default))
{
zip["房屋租赁协议.doc"].Extract(@"E:\", true);
}
{
zip["房屋租赁协议.doc"].Extract(@"E:\", true);
}
5.从zip文件中解压全部文件
using (ZipFile zip = ZipFile.Read(@"E:\test.zip", System.Text.Encoding.Default))
{
foreach (ZipEntry entry in zip)
{
entry.Extract(@"E:\test_new", true);
}
}
{
foreach (ZipEntry entry in zip)
{
entry.Extract(@"E:\test_new", true);
}
}
其他详细的使用请参考:http://www.codeplex.com/DotNetZip
转自http://www.cnblogs.com/carysun/archive/2009/02/11/DotNetZip.html