DotNetZip是一个Zip操作类库,它非常小,但也非常容易使用。在VB.NET、C#或其他的.NET语言中引用它后就可以非常容易的对Zip文件进行创建、读取或更新等操作。DotNetZip目前的版本为1.7,下边用几个例子来说明它的使用(使用前需引用命名空间Ionic.Zip)。
1.创建/更新压缩文件,zip文件存在则更新,不存在则创建
//
注意设置编码,默认中文件名会乱码
using
(ZipFile zip
=
new
ZipFile(
@"
E:\test.zip
"
, System.Text.Encoding.Default))
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
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))
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
string list = string.Empty;
foreach (ZipEntry entry in zip)
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
list += entry.FileName + "\r\n";
}
MessageBox.Show(list);
}
3.从zip文件中删除一个文件,注意无法直接删除一个文件夹
using
(ZipFile zip
=
ZipFile.Read(
@"
E:\test.zip
"
, System.Text.Encoding.Default))
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
//zip["房屋租赁协议.doc"] = null;
zip.RemoveEntry("房屋租赁协议.doc");
zip.Save();
}
4.从zip文件中解压出一个文件
using
(ZipFile zip
=
ZipFile.Read(
@"
E:\test.zip
"
, System.Text.Encoding.Default))
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
zip["房屋租赁协议.doc"].Extract(@"E:\", true);
}
5.从zip文件中解压全部文件
using
(ZipFile zip
=
ZipFile.Read(
@"
E:\test.zip
"
, System.Text.Encoding.Default))
![ExpandedBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
foreach (ZipEntry entry in zip)
![ExpandedSubBlockStart.gif](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
entry.Extract(@"E:\test_new", true);
}
}
官方站点:http://www.codeplex.com/DotNetZip