跳至頁尾內容
USING IRONZIP

如何在 C# 中將文件解壓到目錄

解壓縮檔案 在程式開發中是一項常見任務,特別是在處理壓縮檔案時。 在本文中,我們將探討如何使用 C#IronZIP 程式庫,從ZIP檔案中提取文件。

無論您是在開發 Windows 應用程式或 .NET 專案,瞭解解壓縮檔案的過程都非常有價值。 讓我們深入探討,了解如何在 C# 程式碼中有效地處理 ZIP 檔案。

本文將解釋:

  1. 安裝 IronZIP 程式庫的過程
  2. 如何提取ZIP檔案
  3. 如何提取有密碼保護的ZIP檔案
  4. 如何建立ZIP檔案
  5. 如何建立有密碼保護的ZIP檔案

為什麼您需要解壓縮檔案?

ZIP 檔案,也稱為 ZIP 壓縮檔,是多個檔案的一個壓縮容器。 解壓縮這些檔案涉及到提取壓縮資料並將其恢復到初始狀態。 當您需要在 C# 應用程式中存取或操作資料時,此過程是必需的。 IronZIP 通過提供簡單的方法來管理壓縮的資料,簡化了這一任務。

什麼是 IronZIP?

IronZIP 是一個強大的 C# ZIP 壓縮程式庫,方便了在 .NET 應用程式中 建立讀取提取壓縮包。 無論您需要壓縮檔案、從現有壓縮包中提取資料,還是管理您的ZIP檔案,IronZIP 都提供了一個使用者友好的 API,能夠高效地完成這些任務。 IronZIP 簡化了在 .NET 應用程式中進行 ZIP 壓縮包的操作。

它支持多種壓縮格式,包括 ZIP、TAR、GZIP 和 BZIP2。IronZIP 是跨平台的,相容於 .NET Core、.NET Standard 和 .NET Framework。 並且它提供了進階功能,如密碼保護壓縮包、可自訂壓縮級別和檔案項目管理。

How to Extract Files to a Directory in C

現在,我將討論一些在 C# 中從 ZIP 檔案中提取的例子。 首先在 Visual Studio 中建立一個新的 C# 項目。 選擇適當的項目型別(例如:控制台應用程式,Windows 窗體,ASP.NET Core,等等)。 接下來,我們需要安裝 IronZIP NuGet 套件

通過 NuGet 套件管理工具安裝 IronZIP

要安裝 IronZIP NuGet 套件,您可以在套件管理控制台中使用以下命令:

Install-Package IronZip

或者,您可以使用 Visual Studio 中的套件管理工具介面來搜尋並安裝 IronZIP 套件。

在您的 C# 程式碼中,匯入 IronZIP 命名空間以存取其類別和方法。

using IronZip;
using IronZip;
Imports IronZip
$vbLabelText   $csharpLabel

Code Example to Extract ZIP files in C

以下程式碼將在 C# 中將檔案解壓到指定目錄。

// This line extracts the "Images.zip" archive to the "Extracted Images" directory
IronZipArchive.ExtractArchiveToDirectory(@"E:\Images.zip", "Extracted Images");
// This line extracts the "Images.zip" archive to the "Extracted Images" directory
IronZipArchive.ExtractArchiveToDirectory(@"E:\Images.zip", "Extracted Images");
' This line extracts the "Images.zip" archive to the "Extracted Images" directory
IronZipArchive.ExtractArchiveToDirectory("E:\Images.zip", "Extracted Images")
$vbLabelText   $csharpLabel

上述程式碼讀取指定的 ZIP 檔案 ("E:\Images.zip"),解壓其內容,並將解壓的檔案放入名為 "Extracted Images" 的目錄中。

解釋

IronZipArchive 指的是 IronZIP 程式庫提供的類別。 這是您在 C# 程式碼中操作 ZIP 壓縮包的主要進入點。 ExtractArchiveToDirectory(...) 是一個方法(或函式),由 IronZipArchive 類別提供。 它允許您將 ZIP 壓縮包的內容(在此情況下是檔案 "E:\Images.zip")提取到指定的目錄中(在此情況下,名為 "Extracted Images" 的目錄)。

該方法有兩個參數:

  1. 第一個參數 (@"E:\Images.zip") 是您想要提取的 ZIP 檔案的路徑。
  2. 第二個參數 ("Extracted Images") 是您希望從 ZIP 壓縮包中提取檔案的目錄。

輸出:

如何在 C# 中將檔案解壓到目錄:圖1 - 提取的文件在提取圖片目錄中

如何提取有密碼保護的 ZIP 檔案

IronZIP 提供了一個簡單的方法來提取加密的 ZIP 檔案。 以下程式碼演示如何從廣密碼保護的 ZIP 檔案中提取所有文件。

// This line extracts the "EncryptedImages.zip" archive to the "ExtractedImages" directory with the given password
IronZipArchive.ExtractArchiveToDirectory(@"EncryptedImages.zip", "ExtractedImages", "zipP@55w0rd");
// This line extracts the "EncryptedImages.zip" archive to the "ExtractedImages" directory with the given password
IronZipArchive.ExtractArchiveToDirectory(@"EncryptedImages.zip", "ExtractedImages", "zipP@55w0rd");
' This line extracts the "EncryptedImages.zip" archive to the "ExtractedImages" directory with the given password
IronZipArchive.ExtractArchiveToDirectory("EncryptedImages.zip", "ExtractedImages", "zipP@55w0rd")
$vbLabelText   $csharpLabel

上述程式碼使用 IronZIP 將 "EncryptedImages.zip" 壓縮包的內容提取到 "ExtractedImages" 目錄中。同時指定解密所需的密碼 "zipP@55w0rd",這表明 ZIP 檔案被加密,需要提供的密碼才能解壓。 它將覆蓋現有文件。

輸出:

如何在 C# 中將檔案解壓到目錄:圖2 - 提取的密碼保護文件在提取圖片目錄中

在 C# 中與 IronZIP 一起,解壓檔案到目錄涉及到充分利用 IronZIP 程式庫的功能。通過使用類似 IronZipArchive.ExtractArchiveToDirectory 的功能,開發者可以輕鬆提取壓縮文件,提供了一種簡單的機制來處理本地文件頭。 它提供了一種高效的方法來更新應用程式中的 ZIP 和 RAR 檔案。

IronZIP 還提供了在 C# 和 .NET 應用程式中建立 ZIP 檔案的方法。 讓我們在 C# 中建立一個 ZIP 檔案。

如何建立 ZIP 壓縮包

以下程式碼範例將建立一個 ZIP 壓縮包。

static void Main(string[] args)
{
    // Create a new ZIP archive with a high compression level (9)
    using (var archive = new IronZipArchive(9))
    {
        // Add image files to the archive
        archive.Add(@"E:\Images\image1.png");
        archive.Add(@"E:\Images\image2.png");
        archive.Add(@"E:\Images\image3.png");
        archive.Add(@"E:\Images\image4.png");

        // Export the ZIP archive to the file "MyImages.zip"
        archive.SaveAs("MyImages.zip");
    }
}
static void Main(string[] args)
{
    // Create a new ZIP archive with a high compression level (9)
    using (var archive = new IronZipArchive(9))
    {
        // Add image files to the archive
        archive.Add(@"E:\Images\image1.png");
        archive.Add(@"E:\Images\image2.png");
        archive.Add(@"E:\Images\image3.png");
        archive.Add(@"E:\Images\image4.png");

        // Export the ZIP archive to the file "MyImages.zip"
        archive.SaveAs("MyImages.zip");
    }
}
Shared Sub Main(ByVal args() As String)
	' Create a new ZIP archive with a high compression level (9)
	Using archive = New IronZipArchive(9)
		' Add image files to the archive
		archive.Add("E:\Images\image1.png")
		archive.Add("E:\Images\image2.png")
		archive.Add("E:\Images\image3.png")
		archive.Add("E:\Images\image4.png")

		' Export the ZIP archive to the file "MyImages.zip"
		archive.SaveAs("MyImages.zip")
	End Using
End Sub
$vbLabelText   $csharpLabel

上述程式碼示範了使用 IronZIP 建立一個新的 ZIP 壓縮包(壓縮等級為9),並新增多個條目,每個條目表示一個圖像檔案(image3.pngimage4.png)從指定的文件路徑。

最後,使用 SaveAs 方法將建立的 ZIP 壓縮包導出為 "MyImages.zip" 在指定的目錄中。 壓縮等級9表示最大壓縮,結果是檔案大小更小但可能需要較長的處理時間。

如何在 C# 中將檔案解壓到目錄:圖3 - 先前程式碼輸出的 ZIP 壓縮包

如何建立有密碼保護的 ZIP 壓縮包

以下程式碼將建立一個有密碼保護的 ZIP 檔案。

// Create a new ZIP archive with a high compression level (9)
using (var archive = new IronZipArchive(9))
{
    // Password protect the ZIP archive (Support AES128 & AES256)
    archive.Encrypt("miPassw0rd", EncryptionMethods.AES256);

    // Add image files to the archive
    archive.Add(@"E:\Images\image1.png");
    archive.Add(@"E:\Images\image2.png");

    // Export the ZIP archive as "PasswordProtectedImages.zip"
    archive.SaveAs("PasswordProtectedImages.zip");
}
// Create a new ZIP archive with a high compression level (9)
using (var archive = new IronZipArchive(9))
{
    // Password protect the ZIP archive (Support AES128 & AES256)
    archive.Encrypt("miPassw0rd", EncryptionMethods.AES256);

    // Add image files to the archive
    archive.Add(@"E:\Images\image1.png");
    archive.Add(@"E:\Images\image2.png");

    // Export the ZIP archive as "PasswordProtectedImages.zip"
    archive.SaveAs("PasswordProtectedImages.zip");
}
' Create a new ZIP archive with a high compression level (9)
Using archive = New IronZipArchive(9)
	' Password protect the ZIP archive (Support AES128 & AES256)
	archive.Encrypt("miPassw0rd", EncryptionMethods.AES256)

	' Add image files to the archive
	archive.Add("E:\Images\image1.png")
	archive.Add("E:\Images\image2.png")

	' Export the ZIP archive as "PasswordProtectedImages.zip"
	archive.SaveAs("PasswordProtectedImages.zip")
End Using
$vbLabelText   $csharpLabel

上述程式碼演示如何使用 IronZIP 建立一個有密碼保護的 ZIP 壓縮包,並指定加密方法(在這個例子中是 AES256)。 密碼 "miPassw0rd" 被設置為保護 ZIP 檔案。接著程式碼從指定的文件路徑中將兩個圖像檔案(image1.pngimage2.png)新增到壓縮包中。

最後,使用 SaveAs 方法來將有密碼保護的 ZIP 壓縮包導出為 "PasswordProtectedImages.zip."。 這確保了內容的安全性,通過指定的密碼和加密方法。 IronZIP 支持 AES128、AES256 和傳統方法。

結論

總結一下,本文涵蓋了如何使用 IronZIP 程式庫在 C# 中程式化地處理壓縮文件的基本方面。 從安裝過程到實際的提取建立保護 ZIP 壓縮包的例子,開發者都獲得了寶貴的見解。 IronZIP 的使用者友好 API、跨平台相容性和對加密方法的支持,使其成為在各種 C# 應用程式中高效管理 ZIP 文件的多功能解決方案。

無論是更新現有文件還是處理有密碼保護的壓縮包,IronZIP 簡化了這一過程,為開發人員尋求高效文件操作能力的 C# 專案提供了強大的工具集。

IronZIP 提供靈活的授權選項,包括長期使用的免費試用。 開發人員可以根據專案需求選擇最合適的授權模式,確保在其 C# 應用程式中實施 IronZIP 時既具有靈活性又方便。

常見問題

如何使用 C# 從 ZIP 壓縮檔中提取文件?

您可以使用 IronZIP 在 C# 中從 ZIP 壓縮檔中提取文件。IronZipArchive.ExtractArchiveToDirectory 方法允許您指定 ZIP 檔案的路徑和提取的目標目錄。

安裝 IronZIP 至 .NET 專案的步驟是什麼?

若要在 .NET 專案中安裝 IronZIP,您可以在 Visual Studio 中使用 NuGet 套件管理器。在套件管理器主控台中執行 Install-Package IronZIP 命令或在 NuGet 套件管理器 UI 中搜尋 IronZIP 以新增至您的專案。

我可以使用 IronZIP 提取受密碼保護的 ZIP 檔案嗎?

是的,IronZIP 支援提取受密碼保護的 ZIP 檔案。您需要在 ExtractArchiveToDirectory 方法中提供密碼作為參數,以存取和提取文件。

如何在 C# 中程式化建立 ZIP 檔案?

您可以在 C# 中使用 IronZIP 來建立 ZIP 檔案,實例化新的 IronZipArchive,用 Add 方法新增文件,並使用 SaveAs 方法保存壓縮檔。

IronZIP 支援多個壓縮格式嗎?

是的,IronZIP 支援多種壓縮格式,包括 ZIP、TAR、GZIP 和 BZIP2,允許在 C# 應用程式中靈活處理不同的壓縮檔案型別。

IronZIP 是否相容跨平台 .NET 應用程式?

IronZIP 與跨平台的 .NET 應用程式相容,因為它支援 .NET Core、.NET Standard 和 .NET Framework,使其在各種開發環境中非常靈活。

IronZIP 中有哪些加密方法可用?

IronZIP 提供建立受密碼保護的 ZIP 壓縮檔的加密方法。您可以使用 Encrypt 方法來設置密碼並保護您的壓縮檔。

如何在購買前評估 IronZIP?

IronZIP 提供免費試用和靈活的授權選項,允許開發者在購買前評估程式庫的功能和效能。

IronZIP 在處理 C# 中的 ZIP 檔案有哪些優勢?

IronZIP 提供了使用者友好的 API,支援多種壓縮格式和加密方法,簡化了建立、閱讀和提取 ZIP 壓縮檔的過程,是 C# 開發人員的高效工具。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

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

Iron 支援團隊

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