如何在 C# 中创建、读取和提取 ZIP 文件

C#教程:创建、读取和提取ZIP文件

This article was translated from English: Does it need improvement?
Translated
View the article in English

创建 ZIP 程序通过选择文件或目录、指定压缩设置并创建归档来生成新的 ZIP 归档。

Extract ZIP 通过指定源 ZIP 文件、目标文件夹,并将文件和目录提取到指定位置来检索内容。

除了这些功能外,IronZip 还可以打开现有的 ZIP 文件,向其中添加更多文件,然后将结果导出为包含所有包含文件的新 ZIP 文件。

快速入门:使用 IronZIP 轻松创建或提取 ZIP 文件

快速上手——只需几个简单的 API 调用,即可使用 IronZIP 创建、修改或提取 ZIP 存档。 非常适合希望无需编写样板代码即可立即处理归档文件的开发人员。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronZIP

    PM > Install-Package IronZip

  2. 复制并运行这段代码。

    IronZipArchive.ExtractArchiveToDirectory("project.zip", "outputFolder");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronZIP,免费试用!
    arrow pointer

创建存档示例

要创建 ZIP 归档对象,您可以方便地在 C# 中使用using语句以及IronZipArchive构造函数。 IronZip 使这个过程变得简单,只需几行代码即可创建一个空的 ZIP 存档。

接下来,使用Add方法将文件导入 ZIP 压缩包。此方法允许您从各种位置添加文件,包括整个目录及其中的所有文件。

最后,使用SaveAs方法导出 ZIP 文件。

:path=/static-assets/zip/content-code-examples/tutorials/create-read-extract-zip-create.cs
using IronZip;

// Create an empty ZIP
using (var archive = new IronZipArchive())
{
    // Add files to the ZIP
    archive.Add("./assets/image1.png");
    archive.Add("./assets/image2.png");

    // Export the ZIP file
    archive.SaveAs("output.zip");
}
Imports IronZip

' Create an empty ZIP
Using archive = New IronZipArchive()
	' Add files to the ZIP
	archive.Add("./assets/image1.png")
	archive.Add("./assets/image2.png")

	' Export the ZIP file
	archive.SaveAs("output.zip")
End Using
$vbLabelText   $csharpLabel

将压缩文件解压到文件夹

要从 ZIP 文件中检索内容,可以使用ExtractArchiveToDirectory方法。 只需指定目标 ZIP 文件的路径以及您希望保存解压文件的目录即可。

:path=/static-assets/zip/content-code-examples/tutorials/create-read-extract-zip-extract.cs
using IronZip;

// Extract ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
Imports IronZip

' Extract ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted")
$vbLabelText   $csharpLabel

将文件添加到现有存档

您可以使用 IronZip 高效地向现有 ZIP 压缩包中添加文件。该过程首先从现有 ZIP 文件路径实例化 ZIP 压缩包对象。 打开归档文件后,您可以使用Add方法向现有归档文件添加文件。

:path=/static-assets/zip/content-code-examples/tutorials/create-read-extract-zip-add-files.cs
using IronZip;

// Open existing ZIP
using (var archive = IronZipArchive.FromFile("existing.zip"))
{
    // Add files
    archive.Add("./assets/image3.png");
    archive.Add("./assets/image4.png");

    // Export the ZIP file
    archive.SaveAs("result.zip");
}
Imports IronZip

' Open existing ZIP
Using archive = IronZipArchive.FromFile("existing.zip")
	' Add files
	archive.Add("./assets/image3.png")
	archive.Add("./assets/image4.png")

	' Export the ZIP file
	archive.SaveAs("result.zip")
End Using
$vbLabelText   $csharpLabel

借助此功能,您可以高效地更新和扩展 ZIP 存档,以满足项目不断变化的需求。 IronZip 让 C# 项目中的归档管理变得轻而易举。

对于其他归档和压缩格式(如 TAR、GZIP 和 BZIP2),可以分别使用IronTarArchiveIronGZipArchiveIronBZip2Archive类来实现类似的方法。

常见问题解答

如何在 C# 中创建 ZIP 存档?

要在 C# 中创建一个 ZIP 归档,需从 IronZip 实例化 IronZipArchive 类。使用 Add 方法将文件或目录添加到归档中,并使用 SaveAs 方法保存归档。示例代码:using (var zip = new IronZipArchive()) { zip.Add(@"C:\path\to\directory"); zip.SaveAs(@"C:\path\to\output.zip"); }

如何在 C# 中读取和提取 ZIP 文件的内容?

您可以使用 IronZipArchive 类打开 ZIP 文件来读取和提取内容。利用 ExtractArchiveToDirectory 方法指定提取文件的目标目录。示例:using (var zip = new IronZipArchive(@"C:\path\to\archive.zip")) { zip.ExtractArchiveToDirectory(@"C:\path\to\output\directory"); }

可以在 C# 中向现有 ZIP 归档中添加文件吗?

是的,您可以在 C# 中向现有 ZIP 归档中添加文件。使用 IronZipArchive 类打开现有的 ZIP,使用 Add 方法包含额外的文件,然后使用 SaveAs 方法保存更新后的归档。

在 C# 中可以用于 ZIP 管理的库有哪些?

IronZip 是一个在 NuGet 上可用的用于管理 C# 中 ZIP 文件的完整库。它允许您使用 IronZipArchive 等类来高效创建、读取和提取 ZIP 文件。

如何在 C# 中处理其他压缩格式,如 TAR 和 GZIP?

除了 ZIP 文件,您还可以使用 IronZip 管理其他压缩格式。对于 TAR、GZIP 和 BZIP2,分别使用 IronTarArchiveIronGZipArchiveIronBZip2Archive 类来处理这些格式。

如何在 C# 中开始处理 ZIP 文件?

首先从 NuGet 下载 IronZip 库。实例化 IronZipArchive 类来创建或打开 ZIP 文件,并使用 AddExtractArchiveToDirectory 等方法管理归档。

是否可以在 C# 中从 ZIP 归档中提取特定文件?

是的,可以在 C# 中从 ZIP 归档中提取特定文件。使用 IronZipArchive 打开 ZIP 文件,并使用库提供的方法访问所需文件进行提取。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 17,333 | 版本: 2025.12 刚刚发布