System.IO.Compression命名空间包含如下的基本的文件和流压缩和解压缩服务的类型, 还可以使用这些类型来读取和修改压缩文件的内容,主要有以下类:
ZipFile ,ZipArchive , ZipArchiveEntry ,DeflateStream , GZipStream
1.使用 ZipFile 类创建和提取有一个 .zip 文件扩展名的压缩文件:必须引用System.IO.Compression.FileSystem 程序集。
using System;
using System.IO;
using System.IO.Compression;namespace ConsoleApplication1
{class Program{static void Main(string[] args){string zipPath = @"c:\example\start.zip";string extractPath = @"c:\example\extract";using (ZipArchive archive = ZipFile.OpenRead(zipPath)){foreach (ZipArchiveEntry entry in archive.Entries){if (entry.FullName.EndsWith(".txt", StringComparison.OrdinalIgnoreCase)){entry.ExtractToFile(Path.Combine(extractPath, entry.FullName));}}} }}
}
3.使用 ZipArchive 类访问现有的 .zip 文件,然后添加新文件到压缩文件。 当添加到现有的 .zip 文件时,新文件获取压缩。
namespace ConsoleApplication
{class Program{static void Main(string[] args){using (FileStream zipToOpen = new FileStream(@"c:\users\exampleuser\release.zip", FileMode.Open)){using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update)){ZipArchiveEntry readmeEntry = archive.CreateEntry("Readme.txt");using (StreamWriter writer = new StreamWriter(readmeEntry.Open())){writer.WriteLine("Information about this package.");writer.WriteLine("========================");}}}}}
}
4.使用 GZipStream 和 DeflateStream 类压缩和解压缩数据。 它们使用相同的压缩算法。 写入文件扩展名为 .gz 的压缩GZipStream 对象可以通过使用许多常用工具,除了 GZipStream提供的方法之外,被解压

