ZIP流是在NetFramework4.5 引入的目的是为了可以更好的操做ZIP文件,进行压缩解压等操做。与ZIP流相关的几个类是:java
PS: 在使用以前请先添加程序集引用System.IO.Compression
与System.IO.Compression.FileStream
api
using (FileStream fs = new FileStream("myZip.zip", FileMode.Create)) { //打开压缩包 using (ZipArchive zipArchive = new ZipArchive(fs, ZipArchiveMode.Create)) { //建立一个条目 ZipArchiveEntry entry = zipArchive.CreateEntry("HelloWorld.txt"); //在条目中写入内容 using (StreamWriter writer = new StreamWriter(entry.Open(), Encoding.Default)) { writer.Write("I am 鲁迅认识的那只猹! Hello World"); } } }
using (FileStream fs = new FileStream("myZip.zip", FileMode.Open)) { //打开压缩包,Mode 为Update模式 using (ZipArchive zipArchive = new ZipArchive(fs, ZipArchiveMode.Update)) { //建立一个条目 ZipArchiveEntry entry = zipArchive.CreateEntry("AppendFile.txt"); //在条目中写入内容 using (StreamWriter writer = new StreamWriter(entry.Open(), Encoding.Default)) { writer.Write("这是追加的内容!"); } } }
using (FileStream fs = new FileStream("myZip.zip", FileMode.Open)) { //打开压缩包,Mode 为Update模式 using (ZipArchive zipArchive = new ZipArchive(fs, ZipArchiveMode.Update)) { //建立一个用来存放解压后的文件的目录 Directory.CreateDirectory("myZip"); //将全部的条目解压出来 foreach (var item in zipArchive.Entries) { //解压文件 item.ExtractToFile(@"myZip\" + item.Name); } } }
方法 | 解释 |
---|---|
FileZip.CreateFromDirectory | 从一个目录建立ZIP压缩文件 |
FileZip.ExtractToDirectory | 将ZIP压缩文件解压到目录中 |
FileZip.Open | 打开一个ZIP压缩文件 |
FileZip.OpenRead | 打开一个读取模式的ZIP压缩文件 |
ZipFileExtensions 为ZipArchive 和 ZipArchiveEntry 提供了一些更简便的方法,具体能够查看官方文档code