使用 IRONZIP

如何在 C# 中將 Zip 壓縮檔案解壓縮到目錄

查克尼思·賓
查克尼思·賓
2024年3月26日
分享:

ZIP 檔案是將多個文件和目錄打包成單一檔案的一種方便方式。無論您是在管理備份、分發軟體,還是分享文件,從 ZIP 檔案中有效地提取內容都是至關重要的。 IronZIP,一個強大的 .NET 程式庫,透過提供簡單的方法來簡化這個過程。

如何在 C# 中將 Zip 壓縮檔解壓縮到目錄

  1. 在您的專案中安裝IronZIP庫。

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

  3. 指定您的 ZIP 檔案路徑(例如:"output.zip")和目標提取目錄(例如:"extracted")。

什麼是IronZIP?

IronZIP 是一個多功能的 C# 函式庫,用於在 .NET 應用程式中處理 ZIP 檔案。 無論您是在開發桌面軟體、Web 應用程式還是自動化工具,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. ExtractArchiveToDirectory 方法被調用於 IronZipArchive 的一個實例上。

    2. 第一個參數 "Contracts.zip" 代表您要解壓縮的 ZIP 文件的路徑。
  3. 第二個參數“Contracts”指定了解壓縮文件將被放置的目標目錄。

    如果指定目錄中已存在文件,將覆蓋現有文件。 提取的檔案為:

    如何在 C# 中將 Zip 壓縮檔解壓縮到目錄:圖 1 - 文件系統

提取受密碼保護的 ZIP 壓縮檔案

IronZIP 還提供了提取受密碼保護壓縮檔案的方法。 以下範例將從受密碼保護的 ZIP 文件中提取檔案。

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

上述程式碼會解壓縮名為「PasswordProtectedContracts.zip」的受密碼保護的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" 語句用來檢查 "Contract1.pdf" 是否存在於 ZIP 檔案中。如果存在,則會在控制台打印 "File Exist"。 簡而言之,此程式碼可幫助您確認特定檔案是否位於 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 剛剛發布

查看許可證 >