System.IO.Compression.ZipArchive压缩目录下所有文件
时间: 2024-11-22 13:45:19 浏览: 11
System.IO.Compression.ZipArchive 是 .NET Framework 中的一个类库,它提供了一种方便的方式来创建、读取和操作 ZIP 归档文件。当你想要将目录下的所有文件压缩成一个 ZIP 文件时,你可以这样做:
首先,你需要引用 `System.IO.Compression` 和 `System.IO` 命名空间。然后,可以按照以下步骤操作:
1. 创建一个 ZipArchive 实例,指定输出的 ZIP 文件路径和是否追加到已存在的文件。
```csharp
using (var archive = new ZipArchive(path, ZipArchiveMode.Create))
{
// 接下来的操作
}
```
2. 使用 `GetEntries()` 方法获取目录中的文件列表,遍历每一项。
```csharp
foreach (string filePath in Directory.GetFiles(directoryPath))
{
string entryName = Path.GetFileName(filePath);
using (var entry = archive.CreateEntry(entryName))
{
using (FileStream stream = entry.Open())
{
File.Copy(filePath, stream);
}
}
}
```
3. 如果有子目录需要包含,可以递归地对每个子目录进行同样的操作。
请注意,在实际使用中,可能还需要处理异常和关闭资源等问题。完成所有文件复制后,记得关闭 `ZipArchive` 对象。
阅读全文