推荐一个操作Zip文件的开源类库:DotNetZip (转)
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))
using (ZipFile zip = new ZipFile(@"E:\test.zip", System.Text.Encoding.Default)) {
{ zip.AddDirectory(@"E:\test");//添加文件夹
    zip.AddDirectory(@"E:\test");//添加文件夹 zip.AddFile(@"E:\房屋租赁协议.doc");//添加文件,文件不存在抛错FileNotFoundException
    zip.AddFile(@"E:\房屋租赁协议.doc");//添加文件,文件不存在抛错FileNotFoundException zip.Save();
    zip.Save(); }
}
2.列出zip文件中所有的文件
 using (ZipFile zip = ZipFile.Read(@"E:\test.zip", System.Text.Encoding.Default))
using (ZipFile zip = ZipFile.Read(@"E:\test.zip", System.Text.Encoding.Default)) {
{ string list = string.Empty;
    string list = string.Empty; foreach (ZipEntry entry in zip)
    foreach (ZipEntry entry in zip) {
    { list += entry.FileName + "\r\n";
        list += entry.FileName + "\r\n"; }
    } MessageBox.Show(list);
    MessageBox.Show(list); }
}
3.从zip文件中删除一个文件,注意无法直接删除一个文件夹
 using (ZipFile zip = ZipFile.Read(@"E:\test.zip", System.Text.Encoding.Default))
using (ZipFile zip = ZipFile.Read(@"E:\test.zip", System.Text.Encoding.Default)) {
{ //zip["房屋租赁协议.doc"] = null;
    //zip["房屋租赁协议.doc"] = null; zip.RemoveEntry("房屋租赁协议.doc");
    zip.RemoveEntry("房屋租赁协议.doc"); zip.Save();
    zip.Save(); }
}
4.从zip文件中解压出一个文件
 using (ZipFile zip = ZipFile.Read(@"E:\test.zip", System.Text.Encoding.Default))
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))
using (ZipFile zip = ZipFile.Read(@"E:\test.zip", System.Text.Encoding.Default)) {
{ foreach (ZipEntry entry in zip)
    foreach (ZipEntry entry in zip) {
    { entry.Extract(@"E:\test_new", true);
        entry.Extract(@"E:\test_new", true); }
    } }
}
其他详细的使用请参考:http://www.codeplex.com/DotNetZip
转自http://www.cnblogs.com/carysun/archive/2009/02/11/DotNetZip.html
 
                    
                     
                    
                 
                    
                


 
     
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号