posts - 195, comments - 1466, trackbacks - 55, articles - 12
  博客园 :: 首页 ::  :: 联系 :: 订阅 订阅 :: 管理

推荐一个操作Zip文件的开源类库:DotNetZip

Posted on 2009-02-11 07:53 生鱼片 阅读(3324) 评论(28)  编辑 收藏 所属分类: DotNet

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
    }
}

 

其他详细的使用请参考:http://www.codeplex.com/DotNetZip

作者:生鱼片
         
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
Tag标签: DotNetZip,Zip
0
0
(请您对文章做出评价)
« 上一篇:工作流与WF
» 下一篇:无代码的工作流创作模式

Feedback

#1楼   回复  引用  查看    

2009-02-11 07:58 by jason_lb      
早来来留个名,比起sharpzip来有啥优势吗

#2楼   回复  引用  查看    

2009-02-11 08:15 by 怀念家驹      
非常不错,正需要这种api风格压缩类~~~

#3楼   回复  引用  查看    

2009-02-11 08:17 by Kevin Zou      
收藏備用

#4楼   回复  引用  查看    

2009-02-11 08:21 by 孤剑      
正需要这样的内容,谢谢!

#5楼   回复  引用    

2009-02-11 08:27 by jamesdong[未注册用户]
收藏了

#6楼   回复  引用  查看    

2009-02-11 08:51 by 海影      
收藏一下..

#7楼   回复  引用  查看    

2009-02-11 08:52 by kiler      
确实很简单,下次试试,现在主要用7z的api做压缩处理。

#8楼   回复  引用  查看    

2009-02-11 08:53 by 卧兴电子      

#9楼   回复  引用  查看    

2009-02-11 08:54 by 姜敏      
下次试试,没有用过压缩

#10楼   回复  引用    

2009-02-11 09:27 by 小鬼00[未注册用户]
.net2.0本来就已经支持ZIP格式了吧?

#11楼   回复  引用  查看    

2009-02-11 09:30 by Jeffrey Zhao      
@小鬼00
是,不过在J#的类库里

#12楼   回复  引用  查看    

2009-02-11 09:32 by Lao Cai      
对,有没有用7zip做压缩的朋友,可以交流下

#13楼   回复  引用  查看    

2009-02-11 10:04 by kiler      
@Lao Cai
我用过啊,你去http://www.7-zip.org/sdk.html
下载一个7z的api,里面有C#接口的例子的。

#14楼   回复  引用  查看    

2009-02-11 13:25 by 胡浩宇      
不错啊,看起使用很简单

#15楼   回复  引用  查看    

2009-02-11 18:33 by koumi      
没收了

#16楼   回复  引用  查看    

2009-02-11 22:19 by airwolf2026      
呃...不错.曾经找过这样的东西.结果很多都不能用哈.这个呢?

#17楼   回复  引用  查看    

2009-02-12 10:39 by 脚印      
这个库内好像不能适用于.NETCompact Framework 吧?

#18楼   回复  引用  查看    

2009-02-12 11:19 by 陈思涵      
我压缩一个目录,压缩成功,解压缩发现,如果文件名称是中文就会乱码了?

#19楼   回复  引用  查看    

2009-02-12 11:51 by 脚印      
@陈思涵
设置编码就好了

#20楼   回复  引用  查看    

2009-02-12 14:10 by 陈思涵      
--引用--------------------------------------------------
脚印: @陈思涵
设置编码就好了
--------------------------------------------------------

我知道设置一下编码,但是还是同样的效果,可能是编码没设置好

ZipFile zip = new ZipFile("ZipFileToCreate.zip");

zip.AddDirectory(strPath);//需要压缩的目录

zip.Comment = "这是一个压缩文件!";

zip.Encoding = Encoding.GetEncoding("GB2312");//是不是这里写错了!

zip.Save();

#21楼   回复  引用    

2009-02-13 07:01 by Cheeso[未注册用户]
You must set the Encoding BEFORE adding the entries to the zip archive.

ZipFile zip = new ZipFile("ZipFileToCreate.zip");

zip.Encoding = Encoding.GetEncoding("GB2312");//是不是这里写错了!

zip.AddDirectory(strPath);//需要压缩的目录

zip.Comment = "这是一个压缩文件!";

zip.Save();

#22楼   回复  引用    

2009-02-13 14:21 by Cheeso[未注册用户]
yes, it works on the .NET Compact Framework v2.0 .

#23楼   回复  引用  查看    

2009-02-13 17:09 by 陈思涵      
非常谢谢Cheeso!

再次感谢!

#24楼   回复  引用    

2009-03-17 11:02 by 追随智慧
怎么从zip中读取一个图片然后把它显示出来呢???
可以的话发我邮箱吧!谢谢

#25楼   回复  引用    

2009-03-17 11:17 by 追随智慧
怎么从zip中读取一个图片然后把它显示出来呢???
看了看帮助,Read方法太多了!应该是用流吧,具体怎么写呢?
可以的话发我邮箱吧!谢谢

#26楼   回复  引用  查看    

2009-07-10 22:43 by 天涯搜索      
谢谢了··学习了··新手想请教,如果是RAR的怎么做哦··?

#27楼[楼主]   回复  引用  查看    

2009-11-28 15:56 by 生鱼片      
@追随智慧
你可以把图片解压缩到某个位置,让在读取显示啊

#28楼[楼主]   回复  引用  查看    

2009-11-28 15:57 by 生鱼片      
@天涯搜索
好久没用了,以前的项目用的,好像不支持RAR。