使用IRONZIP

如何在C#中将Zip存档提取到目录

查克尼特·宾
查克尼特·宾
2024年三月26日
分享:

ZIP 文件是将多个文件和目录捆绑到一个归档文件中的便捷方式。无论您是管理备份、分发软件还是共享文件,从 ZIP 压缩文件中高效提取都至关重要。 IronZIP,一个强大的.NET库,通过提供简单的方法简化了这个过程。

如何在 C# 中将 Zip 存档提取到目录;

  1. 在您的项目中安装 IronZIP 库。

  2. 使用 IronZIP 提供的 ExtractArchiveToDirectory() 方法。

  3. 指定您的ZIP文件的路径(例如,“output.zip”)和目标解压目录(例如,“extracted”)。

什么是IronZIP?

IronZIP 是一个多功能的 C# 库,可在 .NET 应用程序中处理 ZIP 文件。 无论您是构建桌面软件、网络应用程序还是自动化工具,IronZIP 简化了创建读取提取 ZIP 档案的过程。

主要功能

高性能:IronZIP 拥有强大的引擎用于压缩和解压文件,使操作快速并减少资源使用。

易用性:开发人员可以将IronZIP无缝集成到他们的项目中。 该库提供了处理 ZIP 文件的简单方法。

NuGet 集成:通过 NuGet 包管理器安装 IronZIP,使其适用于您的 C# ziparchive 解压到目录解决方案。

跨平台兼容性:IronZIP 支持包括 Windows、Linux 和 macOS 在内的各种平台。

文档和教程:探索官方文档教程,学习如何有效地利用IronZIP。

IronZIP 为开发人员提供了可靠、高效的解决方案,无论您是压缩文件进行分发、管理备份还是处理数据归档。

将 ZIP 压缩文件解压缩到目录中

在开始之前,我们需要在项目中安装 IronZIP 库。 我们可以通过 NuGet 软件包管理器控制台使用以下命令添加它:

Install-Package IronZip

上述命令将在我们的项目中安装 IronZIP 库和所需的依赖项。

或者,您也可以通过浏览 "IronZIP",从解决方案的 NuGet 包管理器中下载。

在代码中包含必要的using指令:

using IronZip;
using IronZip.Enum;
using IronZip;
using IronZip.Enum;
Imports IronZip
Imports IronZip.Enum
$vbLabelText   $csharpLabel

将 ZIP 文件解压缩到指定目录

IronZIP 简化了将 zip 压缩包解压缩到目录的过程。 我们只需一行代码即可提取文件。 以下代码将提取所提供路径中的所有文件。

internal class Program
 { 
static void Main(string [] args)
 {
     IronZipArchive.ExtractArchiveToDirectory("Contracts.zip", "Contracts");
 }
}
internal class Program
 { 
static void Main(string [] args)
 {
     IronZipArchive.ExtractArchiveToDirectory("Contracts.zip", "Contracts");
 }
}
Friend Class Program
Shared Sub Main(ByVal args() As String)
	 IronZipArchive.ExtractArchiveToDirectory("Contracts.zip", "Contracts")
End Sub
End Class
$vbLabelText   $csharpLabel

上面这行代码提取了 "Contracts.zip "文件的内容,并将其放入名为 "Contracts "的目标文件夹中。这是一种在 C# 应用程序中以编程方式处理 ZIP 压缩文件的便捷方法。

说明

  1. IronZipArchive:这是 IronZIP 库中的一个类或对象。 它提供了处理 ZIP 文件的方法和属性。

  2. .ExtractArchiveToDirectory("Contracts.zip", "Contracts"):

    1. 在 IronZipArchive 实例上调用 ExtractArchiveToDirectory 方法

    2. 第一个参数 "Contracts.zip "表示您要解压缩的 ZIP 文件的路径。
  3. 第二个参数 "Contracts "指定了提取文件的目标目录。

    如果文件已存在于指定目录中,它将覆盖现有文件。 提取的文件为

    如何在C#中解压缩归档到目录:图1 - 文件系统

提取受密码保护的 ZIP 压缩文件

IronZIP 还提供了一种提取受密码保护的压缩文件的方法。 下面的示例将从受密码保护的 ZIP 文件中提取文件。

IronZipArchive.ExtractArchiveToDirectory("PasswordProtectedContracts.zip", "Contracts", "Pa55w0r2Zip");
IronZipArchive.ExtractArchiveToDirectory("PasswordProtectedContracts.zip", "Contracts", "Pa55w0r2Zip");
IronZipArchive.ExtractArchiveToDirectory("PasswordProtectedContracts.zip", "Contracts", "Pa55w0r2Zip")
$vbLabelText   $csharpLabel

上述代码提取了受密码保护的 ZIP 文件 "PasswordProtectedContracts.zip "中的内容,并将其放入名为 "Contracts "的目录中。指定的密码可确保安全提取受保护的 ZIP 文件。

访问现有档案

IronZIP 允许访问现有的 ZIP 文件,而无需从指定目录中解压缩。 该功能对于从压缩文档中提取文件、验证特定条目的存在,甚至根据用户交互动态检查 ZIP 文件内容等场景非常重要。

查看 ZIP 档案中的条目

下面的代码示例将访问现有的 ZIP 文件,并将其条目打印到控制台。

using (var zipArchive = new IronZipArchive("Contracts.zip")) // ziparchive archive
 {
     // Get Entries list
     List<string> names = zipArchive.GetArchiveEntryNames(); 
     foreach (string name in names)
     {
         Console.WriteLine(name); //// method creates ziparchiveentry entry
     }
 }
using (var zipArchive = new IronZipArchive("Contracts.zip")) // ziparchive archive
 {
     // Get Entries list
     List<string> names = zipArchive.GetArchiveEntryNames(); 
     foreach (string name in names)
     {
         Console.WriteLine(name); //// method creates ziparchiveentry entry
     }
 }
Using zipArchive = New IronZipArchive("Contracts.zip") ' ziparchive archive
	 ' Get Entries list
	 Dim names As List(Of String) = zipArchive.GetArchiveEntryNames()
	 For Each name As String In names
		 Console.WriteLine(name) '// method creates ziparchiveentry entry
	 Next name
End Using
$vbLabelText   $csharpLabel

上面的代码使用IronZIP来查看名为“Contracts.zip”ZIP文件的内容。它创建了一个IronZipArchive对象,通过GetArchiveEntryNames方法获取压缩档案中的条目名称(如文件名)列表。 如果 ZIP 文件受密码保护,您可以在制作 IronZipArchive 对象时包含密码。 然后,代码会将每个文件名打印到控制台。

这样,我们就可以在压缩包中处理指定的条目。

输出结果如下

如何在 C# 中将 ZIP 存档解压到目录:图 2 - ZIP 存档条目输出

检查 ZIP 文件中是否存在指定条目

我们还可以检查指定的条目是否存在于指定的 ZIP 文件中。下面的代码演示了这一过程。

using (var zipArchive = new IronZipArchive("Contracts.zip"))
 {
     if(zipArchive.CheckArchiveEntryExist("Contract1.pdf"))
     {
         Console.WriteLine("File Exist");
     }
 }
using (var zipArchive = new IronZipArchive("Contracts.zip"))
 {
     if(zipArchive.CheckArchiveEntryExist("Contract1.pdf"))
     {
         Console.WriteLine("File Exist");
     }
 }
Using zipArchive = New IronZipArchive("Contracts.zip")
	 If zipArchive.CheckArchiveEntryExist("Contract1.pdf") Then
		 Console.WriteLine("File Exist")
	 End If
End Using
$vbLabelText   $csharpLabel

上述代码使用 IronZIP 库检查名为 "Contracts.zip "的文件是否包含名为 "Contract1.pdf "的条目。为此,它为 ZIP 文件创建了一个 IronZipArchive 对象。在代码块中,有一个 "if "语句检查 ZIP 文件中是否存在 "Contract1.pdf"。如果存在,就会在控制台打印 "文件存在"。 简单地说,这段代码可以帮助您确认特定文件是否在 ZIP 文件中,如果是,它就会告诉您。

如何在 C# 中将 Zip 压缩包提取到目录:图 3 - 检查文件存在输出

从现有 ZIP 文件中删除条目

IronZIP 提供了一种从 ZIP 文件中删除条目的方法。以下代码将从现有 ZIP 文件中删除一个文件。

using (var zipArchive = new IronZipArchive("Contracts.zip"))
{
    zipArchive.DeleteArchiveEntry("Contract1.pdf");
}
using (var zipArchive = new IronZipArchive("Contracts.zip"))
{
    zipArchive.DeleteArchiveEntry("Contract1.pdf");
}
Using zipArchive = New IronZipArchive("Contracts.zip")
	zipArchive.DeleteArchiveEntry("Contract1.pdf")
End Using
$vbLabelText   $csharpLabel

上面的代码演示了如何使用 IronZIP 从名为 "Contracts.zip "的 ZIP 压缩包中删除一个条目。在 using 块中,指定的名为 "Contract1.pdf "的文件被从归档文件中删除。此操作可确保在 C# 应用程序中有效管理 ZIP 文件。

结论

总之,IronZIP 是 C# 开发人员的宝贵工具,可简化各种场景下 ZIP 文件的处理。 无论是提取文件以供商业用途。

查克尼特·宾
软件工程师
Chaknith 负责 IronXL 和 IronBarcode 的工作。他在 C# 和 .NET 方面拥有深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的洞察力,有助于提升产品、文档和整体体验。
下一步 >
如何使用C#压缩文件夹中的文件

准备开始了吗? 版本: 2025.4 刚刚发布

查看许可证 >