在之前的帖子中,您學習了使用 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#中訪問和提取文件並打印提取進度的步驟:
- 將 ZIP 存檔打開到 FileStream 對像中。
- 使用 FileStream 對象創建並初始化 Archive 的實例。
- 使用 Archive.Entries 集合訪問 ZIP 中的文件。
- 設置 ArchiveEntry.ExtractionProgressed 事件處理程序以打印提取進度。
- 使用 ArchiveEntry.Extract(string) 方法提取/解壓縮文件。
以下代碼示例顯示瞭如何使用 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# 中的特定文件夾中。
- 使用 FileStream 類打開 ZIP 存檔。
- 創建 Archive 類的實例並使用 ZIP 的 FileStream 對像對其進行初始化。
- 使用 Archive.ExtractToDirectory(string) 方法解壓縮文件。
以下 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 的信息。