跳過到頁腳內容
使用 IRONZIP

如何在 C# 中將壓縮檔萃取至目錄

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

如何在 C# 中將壓縮檔案提取到目錄

  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# zip 歸檔提取到目錄解決方案使用。

跨平台相容性: 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# 中將 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"))
{
    // Get Entries list
    List<string> names = zipArchive.GetArchiveEntryNames();
    foreach (string name in names)
    {
        Console.WriteLine(name); // Print the name of each entry
    }
}
using (var zipArchive = new IronZipArchive("Contracts.zip"))
{
    // Get Entries list
    List<string> names = zipArchive.GetArchiveEntryNames();
    foreach (string name in names)
    {
        Console.WriteLine(name); // Print the name of each entry
    }
}
Using zipArchive = New IronZipArchive("Contracts.zip")
	' Get Entries list
	Dim names As List(Of String) = zipArchive.GetArchiveEntryNames()
	For Each name As String In names
		Console.WriteLine(name) ' Print the name of each 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# 中將壓縮檔案解壓縮到目錄:圖 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 檔案的操作,無論是提取文件用於商業用途。

常見問題解答

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

您可以使用 IronZIP 函式庫的 ExtractArchiveToDirectory() 方法來將 ZIP 檔案解壓縮至特定目錄。只需指定您的 ZIP 檔案路徑和目標萃取目錄即可。

我可以使用 C# 函式庫解壓縮受密碼保護的 ZIP 檔案嗎?

是的,使用 IronZIP,您可以透過提供密碼作為 ExtractArchiveToDirectory() 方法的附加參數,來萃取受密碼保護的 ZIP 檔案。

如何在 C# 專案中安裝 ZIP 檔案管理的函式庫?

您可以透過 NuGet 套件管理員控制台,使用 Install-Package IronZIP 指令來安裝 IronZIP 函式庫,或在 NuGet 套件管理員中瀏覽「IronZIP」以取得解決方案。

我可以使用哪些方法來檢視 ZIP 詞條,而無需將其萃取?

IronZIP 允許您使用 GetArchiveEntryNames() 方法檢視 ZIP 存檔的詞條,該方法會列出存檔中的所有詞條,而無需將其萃取。

是否可以使用 C# 檢查 ZIP 存檔中的特定檔案?

是的,您可以使用 IronZIP 的 CheckArchiveEntryExist() 方法檢查 ZIP 檔案中的特定項目是否存在。

如何使用 C# 從 ZIP 存檔中刪除檔案?

要使用 IronZIP 從 ZIP 存檔中刪除檔案,請在指定檔案的 IronZipArchive 物件上使用 DeleteArchiveEntry() 方法。

哪些平台使用此 C# 函式庫支援 ZIP 檔案管理?

IronZIP 支援各種平台上的 ZIP 檔案管理,包括 Windows、Linux 和 macOS,確保跨平台相容性。

使用 IronZIP 函式庫進行 ZIP 檔案管理有什麼好處?

IronZIP 具備高效能、易用性、跨平台相容性,以及 NuGet 的無縫整合,並為開發人員提供全面的說明文件和教學。

在哪裡可以找到用 C# 管理 ZIP 檔案的教學?

IronZIP 的官方文件和教學可在其網站上找到,提供使用該函式庫進行 ZIP 檔案管理的詳細指導。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。