C# 怎么压缩和解压缩文件_C# 文件压缩解压操作指南

使用System.IO.Compression可实现文件压缩解压:GZipStream适用于单个文件,ZipArchive支持多文件打包;通过CompressionLevel设置压缩级别,解压时需指定CompressionMode.Decompress;大文件应采用流式处理避免内存溢出,已压缩格式如图片效果不明显,注意路径权限并用using释放资源。

c# 怎么压缩和解压缩文件_c# 文件压缩解压操作指南

在 C# 中实现文件的压缩与解压缩,主要依赖于 System.IO.Compression 命名空间提供的类。通过 GZipStream 或 ZipArchive 可以轻松完成常见压缩操作。下面介绍如何使用这些 API 实现文件压缩和解压。

启用压缩功能所需的命名空间

在开始前,确保引入以下命名空间:

using System.IO;
using System.IO.Compression;

如果是使用 .NET Framework 4.5 以上版本或 .NET Core/.NET 5+,这些类默认可用。

单个文件压缩(GZip 格式)

GZipStream 适合压缩单个文件。注意:GZip 不支持压缩多个文件到一个包,如需多文件打包应使用 Zip。

示例:将 source.txt 压缩为 source.txt.gz

using (var source = File.OpenRead(“source.txt”))
using (var target = File.Create(“source.txt.gz”))
using (var gzip = new GZipStream(target, CompressionLevel.Optimal))
{
    source.CopyTo(gzip);
}

CompressionLevel 可选:Optimal(推荐)、Fastest、NoCompression。

单个文件解压(GZip 格式)

将 .gz 文件还原为原始文件内容。

using (var source = File.OpenRead(“source.txt.gz”))
using (var decompress = new GZipStream(source, CompressionMode.Decompress))
using (var target = File.Create(“decompressed.txt”))
{
    decompress.CopyTo(target);
}

注意:必须指定 CompressionMode.Decompress,否则会报错。

多个文件压缩为 ZIP 包

使用 ZipArchive 可将多个文件打包成一个 .zip 文件。

using (var archive = ZipFile.Open(“archive.zip”, ZipArchiveMode.Create))
{
    archive.CreateEntryFromFile(“file1.txt”, “file1.txt”);
    archive.CreateEntryFromFile(“file2.jpg”, “file2.jpg”);
}

也可手动添加条目并写入内容:

var entry = archive.CreateEntry(“info.txt”);
using (var entryStream = entry.Open())
using (var writer = new StreamWriter(entryStream))
{
    writer.Write(“Hello from compressed file!”);
}

解压 ZIP 文件中的所有内容

将整个 ZIP 包解压到指定目录:

ZipFile.ExtractToDirectory(“archive.zip”, “output_folder”);

如果目标文件夹已存在文件,默认会抛出异常。可先删除目录或使用重载控制行为。

若要选择性解压某个文件:

using (var archive = ZipFile.OpenRead(“archive.zip”))
{
    var entry = archive.GetEntry(“file1.txt”);
    if (entry != null)
    {
        entry.ExtractToFile(“recovered_file1.txt”, overwrite: true);
    }
}

注意事项与建议

处理压缩时应注意以下几点:

大文件压缩建议使用流式处理,避免内存溢出ZIP 条目名称使用正斜杠 /,不要用反斜杠 压缩图片、视频等已压缩格式效果不明显在 ASP.NET 或服务程序中注意文件路径权限使用 using 确保资源及时释放

基本上就这些。C# 的压缩操作并不复杂,关键是根据场景选择 GZip 还是 Zip。小文件快速压缩可用 GZip,多文件归档则优先 Zip。掌握这几个核心方法,就能满足大多数项目需求。

以上就是C# 怎么压缩和解压缩文件_C# 文件压缩解压操作指南的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1441175.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 17:49:07
下一篇 2025年12月8日 10:45:38

相关推荐

发表回复

登录后才能评论
关注微信