跳至頁尾內容
USING IRONZIP

如何在 C# 中將 Zip 存檔提取到目錄

ZIP檔案是一種方便的方式,可以將多個檔案和目錄打包成單個壓縮檔。不論您是在管理備份、發佈軟體還是分享檔案,從ZIP壓縮檔中高效提取是至關重要的。 IronZIP是一個強大的.NET程式庫,它提供簡單的方法來簡化這個過程。

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

  1. 在您的專案中安裝IronZIP程式庫。
  2. 使用IronZIP提供的ExtractArchiveToDirectory()方法。
  3. 指定您的ZIP檔案的路徑(例如,"output.zip")和目標提取目錄(例如,"extracted")。

什麼是 IronZIP?

IronZIP是一個多功能的 C# 程式庫,能夠在 .NET 應用程式中處理 ZIP 檔案。 無論您是建立桌面軟體、網頁應用還是自動化工具,IronZIP都能簡化建立閱讀提取ZIP壓縮檔。

主要特點

高性能:IronZIP擁有強大的壓縮和解壓引擎,能快速處理並節省資源。

易於使用:開發人員可以無縫地將IronZIP整合到他們的專案中。 該程式庫提供用於處理ZIP檔案的簡單方法。

NuGet整合:通過NuGet套件管理器安裝IronZIP,讓它在您的C# ziparchive提取到目錄解決方案中更易存取。

跨平台相容性:IronZIP支援包括Windows、Linux和macOS在內的各種平台。

文件和教學:探索官方文件教學以學習如何有效地利用IronZIP。

IronZIP提供了一個可靠且高效的解決方案,無論您是在壓縮檔發佈檔案、管理備份還是處理資料存檔。

將ZIP壓縮檔提取到目錄

在開始之前,我們需要在專案中安裝IronZIP程式庫。 我們可以使用NuGet套件管理器主控台,通過以下指令加入。

Install-Package IronZip

上述命令將在我們的專案中安裝IronZIP程式庫及所需的相依項。

或者,您也可以在解決方案的NuGet套件管理器中搜尋"IronZIP"來下載。

在您的程式碼中包含必須的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"):
  3. ExtractArchiveToDirectory 方法在 IronZipArchive 上被調用。
  4. 第一個引數"Contracts.zip"代表您要提取的ZIP檔案的路徑。
  5. 第二個引數"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檔案中有哪些內容。它建立了一個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 Exists"。 簡而言之,這段程式碼可以幫助您確認一個特定檔案是否在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壓縮檔中刪除一個條目。在使用區塊內,名為"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擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話