与其他组件比较 C# 开发人员使用 IronXL 的 Zip 存档教程 Curtis Chau 已更新:六月 22, 2025 下载 IronXL NuGet 下载 DLL 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在双子座打开 向 Gemini 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 ZipArchive简介 每当想到要以压缩格式发送文件时,人们首先想到的通常是 Zip 压缩包。Zip 压缩包是一种流行的格式,可以将单个文件或整个文件集压缩打包到一个压缩包中。然而,当需要压缩的文件数量庞大时,处理起来可能会非常繁琐,因为您必须逐个进行压缩和格式化。 但事情并非一定要如此。 大量任务需要通过编程方式实现自动化。 我们可以使用 IronZip 这个简单而直观的库来实现所有这些以及更多功能。 在本文中,我们将简要讨论 IronZip 的核心特性和功能,以及它如何帮助您更好地自动化工作流程、提高效率并消除容易出错的手动任务。 从文件夹或文件创建新的 zip 文件 下面的示例程序会接收多个文件,将它们压缩到一个存档中,并在操作完成后导出它们。 本文中的所有示例都包含在static void Main()方法中,以避免重复的代码块。 using IronZip; class Program { static void Main(string[] args) { // Create an empty ZIP archive using (var archive = new IronZipArchive()) { // Add files to the ZIP archive archive.Add("./assets/image1.jpg"); archive.Add("./assets/image2.jpg"); archive.Add("./assets/image3.jpg"); // Export the ZIP archive to a file archive.SaveAs("output.zip"); } } } using IronZip; class Program { static void Main(string[] args) { // Create an empty ZIP archive using (var archive = new IronZipArchive()) { // Add files to the ZIP archive archive.Add("./assets/image1.jpg"); archive.Add("./assets/image2.jpg"); archive.Add("./assets/image3.jpg"); // Export the ZIP archive to a file archive.SaveAs("output.zip"); } } } Imports IronZip Friend Class Program Shared Sub Main(ByVal args() As String) ' Create an empty ZIP archive Using archive = New IronZipArchive() ' Add files to the ZIP archive archive.Add("./assets/image1.jpg") archive.Add("./assets/image2.jpg") archive.Add("./assets/image3.jpg") ' Export the ZIP archive to a file archive.SaveAs("output.zip") End Using End Sub End Class $vbLabelText $csharpLabel 我们首先导入 IronZip。 然后,我们使用 IronZip 创建一个归档文件。 我们调用archive.Add()方法向归档文件中添加多个文件。请记住,路径名必须是绝对路径,否则操作将无法找到对应的文件。 最后,我们调用archive.SaveAs()将 zip 存档导出为output.zip 。 使用新文件或修改更新现有 zip 文件 我们来看另一个例子; 这次,我们将使用新文件编辑现有的 zip 压缩包,以展示 IronZip 的功能。 using IronZip; class Program { static void Main(string[] args) { // Open an existing ZIP archive using (var archive = IronZipArchive.FromFile("existing.zip")) { // Add additional files to the existing ZIP archive archive.Add("./assets/image3.png"); archive.Add("./assets/image4.png"); // Export the updated ZIP archive to a new file archive.SaveAs("result.zip"); } } } using IronZip; class Program { static void Main(string[] args) { // Open an existing ZIP archive using (var archive = IronZipArchive.FromFile("existing.zip")) { // Add additional files to the existing ZIP archive archive.Add("./assets/image3.png"); archive.Add("./assets/image4.png"); // Export the updated ZIP archive to a new file archive.SaveAs("result.zip"); } } } Imports IronZip Friend Class Program Shared Sub Main(ByVal args() As String) ' Open an existing ZIP archive Using archive = IronZipArchive.FromFile("existing.zip") ' Add additional files to the existing ZIP archive archive.Add("./assets/image3.png") archive.Add("./assets/image4.png") ' Export the updated ZIP archive to a new file archive.SaveAs("result.zip") End Using End Sub End Class $vbLabelText $csharpLabel 我们首先导入 IronZip。 使用 IronZip,我们创建一个归档文件,但这次,我们使用IronZipArchive.FromFile()导入现有的 zip 文件。 我们调用archive.Add()方法将所需文件添加到归档文件中。请记住,路径名必须是绝对路径,否则操作将无法找到现有文件。 最后,我们调用archive.SaveAs()将更新后的 zip 存档导出为result.zip 。 如上文代码所示,其操作和格式与创建和添加 Zip 文件的操作类似。主要区别在于,我们导入的是 Zip 文件,这体现了 IronZip 简洁直观的功能。 从 Zip 压缩包中提取文件 我们还可以使用 IronZip 从 Zip 压缩文件或 Zip 包中提取文件。 我们通过另一个例子来复习一下。 using IronZip; class Program { static void Main(string[] args) { // Extract the ZIP archive content to a specified directory IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted"); } } using IronZip; class Program { static void Main(string[] args) { // Extract the ZIP archive content to a specified directory IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted"); } } Imports IronZip Friend Class Program Shared Sub Main(ByVal args() As String) ' Extract the ZIP archive content to a specified directory IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted") End Sub End Class $vbLabelText $csharpLabel 我们导入 IronZip 并调用IronZipArchive.ExtractArchiveToDirectory() 。 此方法将现有 zip 压缩包的内容提取到指定的目标目录。 此外,在需要处理受密码保护的 zip 压缩文件时,我们可以使用另一种方法来提取压缩文件。 using IronZip; class Program { static void Main(string[] args) { // Extract the protected ZIP archive content to a specified directory IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd"); } } using IronZip; class Program { static void Main(string[] args) { // Extract the protected ZIP archive content to a specified directory IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd"); } } Imports IronZip Friend Class Program Shared Sub Main(ByVal args() As String) ' Extract the protected ZIP archive content to a specified directory IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd") End Sub End Class $vbLabelText $csharpLabel 最后,我们传入另一个参数:受保护的 ZIP 压缩文件的密码。其余操作与上述相同。 进阶主题和最佳实践 上面讨论的添加、提取和创建归档文件的代码示例是处理 zip 归档文件时最常用的。 但是,对于更高级的用法,例如提取其他格式或查看存档内容,IronZIP 不仅能满足您的需求,还能提供更多功能。 IronZIP 的高级功能 *跨平台兼容性:IronZIP 与多种 .NET 版本兼容,包括 .NET Core (3.1+)、Standard (2.0+) 和 .NET Framework (4.6.2+)。 该库还支持 Web(Blazor)、移动(MAUI)、桌面(WPF)和控制台。 这使得开发者能够突破平台和版本限制。 *生成归档文件:除了 ZIP 格式外,IronZIP 还支持创建 TAR、GZIP 和 BZIP2 归档文件。 *提取归档文件:如上所示,使用 IronZIP 的单个代码块即可轻松提取归档文件和解压缩文件。 *添加文件和文件系统:IronZIP 可以通过添加图像、文本文件和文档(例如 PDF、DOCX 和 XLSX)以及音频文件(例如 MP3 和 WAV)来辅助操作 zip 压缩包。它甚至可以将整个文件系统或单个文本文件压缩到ZipArchive 压缩包中。 *导出和创建:您可以对符合 AES128 和 AES256 标准的归档文件进行密码保护。 此外,您还可以生成和导出 TAR、GZIP 和 BZIP2 等格式。 *自定义压缩级别:IronZIP 允许开发者调整压缩设置,以根据自身需求微调算法。 *编辑归档:使用 IronZIP 作为编辑相关操作的综合解决方案,轻松添加、提取或删除归档中的文件条目。 *文件条目属性:IronZIP 提供了设置可选的存档注释和检索存档中文件名的功能,而无需提取它们,这有助于为每个文件留下特定的注释。 *许可选择:IronZIP 提供灵活的许可选择,包括免费试用版,让开发者能够选择最适合他们需求的许可方式。 结论 处理压缩文件和归档文件是开发人员经常面临的日常任务,但管理大量此类文件可能会带来压力,并且容易出现人为错误。 虽然有 System.IO.Compression 之类的选项,但使用 IronZIP 可以实现更多功能,并在处理压缩存档时快速解决问题。 在本文中,我们讨论了 IronZIP 的高级功能和常见操作,例如创建 zip 存档、删除条目或添加文件。 了解如何使用 IronZIP 以编程方式执行这些任务,可以提高处理归档文件的效率、可扩展性和自动化程度。 请注意System.IO.Compression 是其各自所有者的注册商标。 本网站与 System.IO.Compression 公司没有任何关联,也未获得其认可或赞助。 所有产品名称、徽标和品牌均为各自所有者的财产。 比较仅供参考,反映的是撰写时的公开信息。 常见问题解答 如何在C#中从文件夹创建ZIP文件? 要在C#中从文件夹创建ZIP文件,您可以使用IronZip库。首先,导入IronZip库,创建一个IronZipArchive实例,使用archive.AddFolder()添加文件夹,然后用archive.SaveAs()保存。 在C#中从ZIP档案中提取数据的过程是怎样的? 您可以使用IronZip在C#中通过调用IronZipArchive.ExtractArchiveToDirectory()方法从ZIP档案中提取数据。此方法允许您指定一个目录以提取内容。 如何在C#中以编程方式更新ZIP档案的内容? 要在C#中以编程方式更新ZIP档案的内容,使用IronZip加载现有档案IronZipArchive.FromFile(),然后使用archive.Add()添加文件或使用archive.Remove()删除文件,再用archive.SaveAs()保存更改。 IronZip能处理密码保护的ZIP文件吗? 是的,IronZip能处理密码保护的ZIP文件。您可以在使用IronZipArchive.ExtractArchiveToDirectory()方法提取文件时指定密码,将密码作为额外参数提供。 使用IronZip代替System.IO.Compression进行ZIP文件处理的好处是什么? IronZip提供了比System.IO.Compression更高级的功能,例如支持多种档案格式、密码保护、自定义压缩级别,以及无需提取就可以通过添加或删除文件来编辑档案。 IronZip如何确保与不同.NET版本的跨兼容性? IronZip通过支持多个.NET版本,确保跨兼容性,允许开发人员将ZIP文件处理功能集成到运行在各种平台和框架上的应用程序中。 IronZip为处理ZIP档案提供哪些高级功能? IronZip提供高级功能,如生成和提取多种档案格式(ZIP,TAR,GZIP,BZIP2)、密码保护、自定义压缩级别,以及无需提取文件的全面编辑能力。 是否可以使用IronZip管理ZIP档案中的文件属性? 是的,IronZip允许在无需先提取文件的情况下管理ZIP档案中的文件属性(如评论),提高在档案管理中的灵活性和效率。 如何在C#中自动化ZIP文件的创建和提取? 您可以在C#中通过在static void Main()方法中使用IronZip来自动化ZIP文件的创建和提取。这使您能够自动化添加文件到档案、提取数据以及以编程方式更新现有档案的过程。 IronZip支持处理整个文件系统吗? 是的,IronZip支持整个文件系统的压缩和提取,适合高效处理大数据量。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已发布十二月 18, 2025 使用互操作比较在 C# 中创建 Excel 文件:IronXL 和替代库 发现对创建电子表格 Excel Interop 的最佳替代方案。比较顶级 Excel 库的功能、授权和代码示例。 阅读更多 已更新七月 28, 2025 比较三个开源 C# Excel 库 本文将探讨三个 C# 开源 Excel 库,旨在简化 .NET 环境中的 Excel 文件操作 阅读更多 已更新八月 4, 2025 EPPlus 读取 Excel 到 DataTable C#(IronXL 教程) EPPlus 是一个强大的开源库,用于在 C# 中创建和操作 Excel 文件。它提供了一个简单直观的 API,使开发人员能够以编程方式生成、读取和修改 Excel 电子表格。 阅读更多 对比 IronXL 和 GemBox.SpreadsheetEPPlus 读取 Excel 到 DataTable C...
已发布十二月 18, 2025 使用互操作比较在 C# 中创建 Excel 文件:IronXL 和替代库 发现对创建电子表格 Excel Interop 的最佳替代方案。比较顶级 Excel 库的功能、授权和代码示例。 阅读更多
已更新八月 4, 2025 EPPlus 读取 Excel 到 DataTable C#(IronXL 教程) EPPlus 是一个强大的开源库,用于在 C# 中创建和操作 Excel 文件。它提供了一个简单直观的 API,使开发人员能够以编程方式生成、读取和修改 Excel 电子表格。 阅读更多