与其他组件比较

C# 开发人员使用 IronXL 的 Zip 归档教程

发布 2025年二月5日
分享:

ZipArchive简介

每当您想到以压缩格式发送文件时,通常首先想到的是 Zip 文件。Zip 文件是一种用于压缩和打包单个文件或整个集合在一个文件中的流行格式。然而,当有大量文件需要压缩时,逐一存档和格式化它们可能会变得令人沮丧。 但不一定非得那样。 大价值任务需要通过编程自动化完成。 我们可以使用IronZIP,这是一个简单而直观的库,来实现所有这些功能及更多。

在本文中,我们将简要讨论IronZIP的核心功能及其如何帮助您更好地自动化工作流程,提高效率,并消除易出错的手动任务。

从文件夹或文件创建新的zip文件

下面是一个示例,它接收五个文件,将它们压缩成一个档案,并在操作后导出。 本文中的所有示例都封装在 static void main 中以避免重复代码。

using IronZip;

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

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

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

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

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

	' Export the ZIP
	archive.SaveAs("output.zip")
End Using
$vbLabelText   $csharpLabel
  1. 我们首先导入IronZIP。

  2. 然后,使用IronZIP,我们创建一个压缩档案。

  3. 然后我们调用 `archive.add()` 并将多个文件添加到归档中。请记住,传递路径名称必须是绝对路径,否则操作将无法找到相应的文件。

  4. 最后,我们调用 archive.SaveAs()并将压缩档案导出为output.zip

使用新文件或修改更新现有的zip文件

让我们看看另一个例子; 这一次,我们将通过添加新文件来编辑现有的 zip 存档,以展示 IronZIP 的功能。

using IronZip;

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

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

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

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

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

	' Export the ZIP
	archive.SaveAs("result.zip")
End Using
$vbLabelText   $csharpLabel
  1. 我们首先导入IronZIP。

  2. 然后,使用IronZIP,我们创建一个压缩文件,但这次,我们导入现有的zip文件,使用IronZipArchive.FromFile()`.

  3. 然后我们调用 `archive.add()并将所需的文件添加到存档中。请记住,传递的路径名必须是绝对路径,否则操作将无法找到现有文件。或者,可以使用单个文件的变量字符串文件名来分隔此步骤,以提高可读性。

  4. 最后,我们调用 archive.SaveAs()` 并将压缩档导出为 `result.zip.`

    从上面的代码可以看出,该操作和格式类似于创建和添加文件到Zip文件中。主要区别在于我们导入了zip文件,展示了IronZIP简单而直观的功能。

从Zip压缩文件中提取文件

我们还可以使用IronZIP从Zip存档或Zip包中提取文件,如上例所示; 让我们在另一个例子中回顾一下。

using IronZip;

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

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

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

我们导入IronZip并调用`IronZipArchive.ExtractArchiveToDirectory`; 该方法正如其名称所示,仅将现有压缩档案的内容提取到提供的目录中。

此外,在处理受密码保护的zip档案时,我们还可以使用另一种方法提取档案。

using IronZip;
using IronZip.Enum;

// Extract protected ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
using IronZip;
using IronZip.Enum;

// Extract protected ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
Imports IronZip
Imports IronZip.Enum

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

最后,我们传入另一个参数:受保护的 zip 存档的密码。其余的操作与上面的代码相同。

高级主题和最佳实践

上面添加、提取和创建的代码示例是处理zip档案时最常见的操作。 但是,在需要更高级用法的其他情况下,例如提取其他格式或仅查看存档上下文,IronZIP 可以满足您的需求和更多。

IronZIP 的高级功能

  • 跨兼容性:IronZIP兼容多种.NET版本,包括.NET Core。(8.7, 6.5, and 3.1+),标准(2.0+)和 .NET Framework(4.6.2+). 该库也适用于网络(Blazor), 移动电话(毛伊岛)桌面(WPF),和控制台。 这使开发人员能够真正超越平台和版本的限制。
  • 生成档案:上面的例子主要集中在ZIP档案格式上; 然而,IronZIP 也可以与 TAR、GZIP 和 BZIP2 一起使用。
  • 提取档案:如上所示,使用IronZIP只需一段代码即可提取档案并解压文件。
  • 添加文件和文件系统:IronZIP还可以帮助您充分操控zip归档,添加图像、文本文件、PDF、DOCX和XLSX等文档,以及MP3和WAV等音频。您甚至可以添加整个压缩文件系统或压缩文本文件来创建一个ZipArchive归档
  • 导出和创建:除了创建基本的Zip存档外,您还可以使用传统或AES128和AES256标准对其进行密码保护。 您还可以生成和导出如上所述的格式,如TAR、GZIP和BZIP2。
  • 自定义压缩级别:IronZIP具有自定义压缩文件功能,并允许开发人员更改压缩算法的设置,以根据他们的需求进行微调。
  • 编辑档案:使用 IronZIP 轻松添加文件条目、提取档案和删除文件条目,这是处理档案编辑相关操作的一站式解决方案。
  • 文件条目属性:IronZIP 允许您设置可选的存档评论并获取存档内文件的文件名,而无需解压,这有助于为每个文件留下指定评论。
  • 许可选择:IronZIP 提供灵活的许可证选择包括免费试用版,让开发人员能够选择最适合其需求的产品。

结论

处理压缩文件和归档是开发人员每天都必须做的任务,但处理大量此类文件可能会带来压力并导致人为错误。 虽然有 System.IO.Compression 等选项,但使用 IronZIP,可以更快速地解决处理压缩档案时的问题。 在本文中,我们简要讨论了IronZIP的高级功能以及在日常场景中常见的基本操作,无论是创建zip档案、删除zip档案中的条目,还是添加更多文件。 了解如何使用IronZIP以编程方式完成它们,可以提高效率和可扩展性,并自动化所有与档案相关的任务。

乔尔迪·巴尔迪亚

乔尔迪·巴尔迪亚

软件工程师

 LinkedIn |  Website

Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 运用技能时,他会进行游戏编程。作为产品测试、产品开发和研究的负责人之一,Jordi 为持续的产品改进增添了极大的价值。多样化的经验让他充满挑战和参与感,他说这是他在 Iron Software 工作中最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。
< 前一页
IronXL与GemBox.Spreadsheet的对比
下一步 >
EPPlus将Excel读取到DataTable的C# (IronXL教程)