在 C# 中解压缩文件

在之前的 post 中,您学习了使用 Aspose.ZIP for .NET 将文件和文件夹压缩到 ZIP 档案中的不同方法。在这篇文章中,我将向您展示如何在 C# 中提取或解压缩 ZIP 文件。我们还将介绍如何在 C# 中提取受密码保护或 AES 加密的 ZIP 存档。本文分为以下几个部分:

用于解压缩 ZIP 文件的 C# API - 免费下载

在我们开始之前,请确保您已 下载 并引用了适用于 .NET 的 Aspose.ZIP,或者在您的项目中使用 NuGet 包管理器 安装了它的包。

在 C# .NET 中解压缩 ZIP 文件

解压缩 ZIP 文件的过程可以通过两种方式实现:

  • 分别解压缩 ZIP 中的每个文件
  • 解压文件到指定文件夹

在第一种方法中,您可以显式访问和解压缩 ZIP 存档中的每个文件。此外,您可以打印提取过程的进度。而第二种方法只是将文件解压缩到指定的文件夹中。

在 C# 中提取 ZIP 中的每个文件

以下是在 C# 中访问和提取文件并打印提取进度的步骤:

以下代码示例展示了如何使用 C# 提取 ZIP 存档中的文件。

// 打开 ZIP 文件
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
	{
		// 访问 ZIP 存档中的每个条目
		for (int i = 0; i < archive.Entries.Count; i++)
		{
			int percentReady = 0;
			// 将提取进度记录到控制台。
			archive.Entries[i].ExtractionProgressed += (s, e) =>
			{
				int percent = (int)((100 * e.ProceededBytes) / ((ArchiveEntry)s).UncompressedSize);
				if (percent > percentReady)
				{
					Console.WriteLine(string.Format("{0}% decompressed", percent));
					percentReady = percent;
				}
			};
			// 将条目的内容提取到磁盘。
			archive.Entries[i].Extract(archive.Entries[i].Name);
		}
	}
}

C# 将 ZIP 文件解压缩到一个文件夹中

以下步骤用于将 ZIP 文件解压缩到 C# 中的特定文件夹中。

以下 C# 代码示例将 ZIP 文件解压缩到一个文件夹中。

// 打开 ZIP 文件
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	using (var archive = new Archive(zipFile))
	{
		// 解压文件到文件夹
		archive.ExtractToDirectory("Unzipped Files");
	}
}

C# 提取受密码保护的 ZIP 文件

您还可以使用 Aspose.ZIP for .NET 解压缩受密码保护的 ZIP 存档。为此,您只需要使用 ArchiveLoadOptions 类指定密码,该类将作为第二个参数传递给存档的构造函数。

以下是解压缩受密码保护的 ZIP 文件的示例代码。

// 打开 ZIP 文件
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	// 使用密码解密
	using (var archive = new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
	{
    		// 提取文件到文件夹
		archive.ExtractToDirectory("Unzipped Files");
	}
}

C# 提取 AES 加密的 ZIP 文件

ZIP 存档也可以使用 AES 加密进行加密。 Aspose.ZIP for .NET 支持使用 AES128、AES192 和 AES256 加密方法加密档案。解压缩 AES 加密的 ZIP 文件类似于解压缩受密码保护的 ZIP 文件。只需使用 ArchiveLoadOptions 类指定解密密码,其余部分将由 API 处理。

以下代码示例展示了如何在 C# 中解压缩 AES 加密的 ZIP 文件。

// 打开 ZIP 文件
using (FileStream zipFile = File.Open("encrypted.zip", FileMode.Open))
{
  	// 解密并解压到文件夹
	new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }).ExtractToDirectory("decrypted");
}

C# 解压缩库 - 获取免费 API 许可证

您可以通过获得 免费临时许可证 来使用 Aspose.ZIP for .NET,而不受评估限制。

结论

在本文中,您学习了如何使用 C# 解压缩 ZIP 文件。此外,您还了解了如何在 C# .NET 中解压缩受密码保护的 ZIP 存档中的文件。代码示例还演示了如何在 C# 中提取加密 ZIP 存档中的文件。您可以使用 documentation 探索更多关于 Aspose.ZIP for .NET 的信息。

相关文章