.NET内置支持ZIP压缩解压,通过System.IO.Compression命名空间实现。使用ZipFile.CreateFromDirectory可压缩文件夹,ZipFile.ExtractToDirectory可解压ZIP到指定目录,目标目录需为空。压缩单个或多个文件可用ZipFile.Open结合CreateEntryFromFile逐个添加。支持设置CompressionLevel压缩级别:NoCompression、Fastest、Optimal,以平衡速度与压缩率。.NET Core及后续版本默认支持,旧版Framework需安装System.IO.Compression.FileSystem包。操作时需注意路径权限与异常处理。

.NET 提供了内置的方式来处理 ZIP 文件的压缩与解压缩,主要通过 System.IO.Compression 命名空间中的类来实现。你不需要引入第三方库就能完成基本的 ZIP 操作。
使用 ZipFile.CreateFromDirectory() 可以将整个文件夹压缩成 ZIP 文件。
using System.IO.Compression; // 示例:将 D:\MyFolder 压缩为 D:\MyArchive.zip string sourceDir = @"D:\MyFolder"; string zipPath = @"D:\MyArchive.zip"; ZipFile.CreateFromDirectory(sourceDir, zipPath);
该方法会递归包含子目录和所有文件。
使用 ZipFile.ExtractToDirectory() 可以将 ZIP 文件解压到指定目录。
// 示例:将 D:\MyArchive.zip 解压到 D:\Extracted\ string zipPath = @"D:\MyArchive.zip"; string extractPath = @"D:\Extracted\"; ZipFile.ExtractToDirectory(zipPath, extractPath);
目标目录必须为空,否则会抛出异常。如果希望覆盖文件,可以先删除目标目录或使用其他方式控制。
如果只想压缩几个特定文件(而不是整个目录),可以手动创建 ZIP 并逐个添加条目。
string[] files = { @"D:\file1.txt", @"D:\file2.txt" };
string zipPath = @"D:\SelectedFiles.zip";
using (var archive = ZipFile.Open(zipPath, ZipArchiveMode.Create))
{
foreach (string file in files)
{
archive.CreateEntryFromFile(file, Path.GetFileName(file));
}
}
这里使用 ZipFile.Open() 创建一个可写 ZIP 归档,然后用 CreateEntryFromFile 添加每个文件。
你可以指定压缩级别来平衡速度与压缩率。
ZipFile.CreateFromDirectory(
sourceDir,
zipPath,
CompressionLevel.Optimal, // 可选: NoCompression, Fastest, Optimal
false // 是否包含基目录
);
CompressionLevel 枚举说明:
以上就是.NET怎么压缩和解压缩ZIP文件的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号