在 C# 中解壓縮文件

在之前的帖子中,您學習了使用 Aspose.ZIP for .NET 將文件和文件夾壓縮到 ZIP 檔案中的不同方法。在本文中,我將向您展示如何在 C# 中提取或解壓縮 ZIP 文件。我們還將介紹如何在 C# 中提取受密碼保護或 AES 加密的 ZIP 存檔。本文分為以下幾個部分:

用於解壓縮 ZIP 文件的 C# API - 免費下載

在我們開始之前,請確保您已經下載 並在您的項目中引用了 Aspose.ZIP for .NET 或使用 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 存檔中的文件。您可以使用 文檔 探索更多關於 Aspose.ZIP for .NET 的信息。

相關文章