0

0

.NET怎么压缩和解压缩ZIP文件

幻夢星雲

幻夢星雲

发布时间:2025-11-03 13:27:02

|

456人浏览过

|

来源于php中文网

原创

.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文件

.NET 提供了内置的方式来处理 ZIP 文件的压缩与解压缩,主要通过 System.IO.Compression 命名空间中的类来实现。你不需要引入第三方库就能完成基本的 ZIP 操作。

启用 ZIP 功能

注意:你需要在项目中引用以下命名空间:
  • System.IO.Compression
  • System.IO.Compression.ZipFile
如果你使用的是 .NET Core 或 .NET 5+,这些功能默认可用。如果是较老的 .NET Framework 项目,可能需要通过 NuGet 安装 System.IO.Compression.FileSystem 包。

压缩文件夹为 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);

该方法会递归包含子目录和所有文件。

解压缩 ZIP 文件

使用 ZipFile.ExtractToDirectory() 可以将 ZIP 文件解压到指定目录。

// 示例:将 D:\MyArchive.zip 解压到 D:\Extracted\
string zipPath = @"D:\MyArchive.zip";
string extractPath = @"D:\Extracted\";

ZipFile.ExtractToDirectory(zipPath, extractPath);

目标目录必须为空,否则会抛出异常。如果希望覆盖文件,可以先删除目标目录或使用其他方式控制。

齐博企业V1.0系统 公司模板1.0
齐博企业V1.0系统 公司模板1.0

1、下载风格压缩包 2、把index.php和enterprise文件夹解压至电脑本地桌面 3、利用FTP上传工具把你齐博企业V1.0版本系统所在的目录index.php原文件备份,然后把下载的风格上传至根目录覆盖原文件 4、然后登录后台更新网站缓存,打开首页查看 5、OK!

下载

压缩单个或多个文件

如果只想压缩几个特定文件(而不是整个目录),可以手动创建 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 枚举说明:

  • NoCompression:不压缩,速度快
  • Fastest:快速压缩,体积稍大
  • Optimal:尽可能小,耗时较长
基本上就这些。.NET 的 ZIP 支持简单直接,适合大多数日常场景。只要注意路径权限、目标目录状态和异常处理,就能稳定运行。

相关专题

更多
C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

10

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

29

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

13

2026.01.22

PHP特殊符号教程合集
PHP特殊符号教程合集

本专题整合了PHP特殊符号相关处理方法,阅读专题下面的文章了解更多详细内容。

11

2026.01.22

PHP探针相关教程合集
PHP探针相关教程合集

本专题整合了PHP探针相关教程,阅读专题下面的文章了解更多详细内容。

8

2026.01.22

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

55

2026.01.22

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

9

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go 教程
Go 教程

共32课时 | 4.1万人学习

麻省理工大佬Python课程
麻省理工大佬Python课程

共34课时 | 5.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号