如何在 C# 中建立、讀取及解壓縮 ZIP 檔案

C# Tutorial: Create, Read & Extract ZIP Files

This article was translated from English: Does it need improvement?
Translated
View the article in English

"建立 ZIP"功能可透過選取檔案或目錄、指定壓縮設定,並建立壓縮檔,來產生新的 ZIP 壓縮檔。

"解壓縮 ZIP"功能可透過指定來源 ZIP 檔案與目標資料夾,將檔案及目錄解壓縮至指定位置。

除了這些功能外,IronZip 還能開啟現有的 ZIP 檔案,將更多檔案加入其中,然後將結果匯出為一個包含所有檔案的新 ZIP 檔案。

快速入門:輕鬆使用 IronZip 建立或提取 ZIP 檔案

快速上手——只需幾個簡單的 API 呼叫,即可使用 IronZIP 建立、修改或提取 ZIP 壓縮檔。 非常適合希望立即處理檔案,且無需處理繁瑣重複代碼的開發人員。

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronZip

    PM > Install-Package IronZip
  2. 請複製並執行此程式碼片段。

    IronZipArchive.ExtractArchiveToDirectory("project.zip", "outputFolder");
  3. 部署至您的生產環境進行測試

    立即透過免費試用,在您的專案中開始使用 IronZIP

    arrow pointer

建立檔案範例

若要建立 ZIP 壓縮檔物件,您可以方便地在 C# 中使用 using 語句,並搭配 IronZipArchive 建構函式。 IronZip 讓這個過程變得簡單直觀,只需幾行程式碼,即可建立一個空的 ZIP 壓縮檔。

接著,請使用 Add 方法將您的檔案匯入 ZIP 壓縮檔。此方法允許您從各種位置新增檔案,包括整個目錄(該目錄中的所有檔案都會被包含在內)。

最後,請使用 SaveAs 方法匯出 ZIP 檔案。

:path=/static-assets/zip/content-code-examples/tutorials/create-read-extract-zip-create.cs
using IronZip;

// Create an empty ZIP
using (var archive = new IronZipArchive())
{
    // Add files to the ZIP
    archive.Add("./assets/image1.png");
    archive.Add("./assets/image2.png");

    // Export the ZIP file
    archive.SaveAs("output.zip");
}
Imports IronZip

' Create an empty ZIP
Using archive = New IronZipArchive()
	' Add files to the ZIP
	archive.Add("./assets/image1.png")
	archive.Add("./assets/image2.png")

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

將壓縮檔解壓縮至資料夾

若要從 ZIP 檔案中提取內容,您可以使用 ExtractArchiveToDirectory 方法。 只需指定目標 ZIP 檔案的路徑,以及您希望放置解壓縮檔案的目錄即可。

:path=/static-assets/zip/content-code-examples/tutorials/create-read-extract-zip-extract.cs
using IronZip;

// Extract ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
Imports IronZip

' Extract ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted")
$vbLabelText   $csharpLabel

將檔案新增至現有壓縮檔

您可以使用 IronZip 有效率地透過新增檔案來修改現有的 ZIP 壓縮檔。此流程首先需從現有的 ZIP 檔案路徑建立 ZIP 壓縮檔物件。 開啟壓縮檔後,您可以使用 Add 方法將檔案新增至現有的壓縮檔中。

:path=/static-assets/zip/content-code-examples/tutorials/create-read-extract-zip-add-files.cs
using IronZip;

// Open existing ZIP
using (var archive = IronZipArchive.FromFile("existing.zip"))
{
    // Add files
    archive.Add("./assets/image3.png");
    archive.Add("./assets/image4.png");

    // Export the ZIP file
    archive.SaveAs("result.zip");
}
Imports IronZip

' Open existing ZIP
Using archive = IronZipArchive.FromFile("existing.zip")
	' Add files
	archive.Add("./assets/image3.png")
	archive.Add("./assets/image4.png")

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

透過此功能,您可以高效地更新和擴展 ZIP 壓縮檔,以適應專案不斷演變的需求。 IronZip 讓您在 C# 專案中管理壓縮檔變得輕而易舉。

對於其他檔案歸檔與壓縮格式(例如 TAR、GZIP 和 BZIP2),可分別使用 IronGZipArchiveIronBZip2Archive 類別來實現類似的處理方式。

常見問題

如何在 C# 中建立 ZIP 壓縮檔?

要在 C# 中建立 ZIP 壓縮檔,請從 IronZIP 類別實例化 IronZIPArchive 類別。使用 Add 方法將檔案或目錄新增至壓縮檔,並使用 SaveAs 方法儲存壓縮檔。 範例程式碼:using (var zip = new IronZipArchive()) { zip.Add(@"C:\path\to\directory"); zip.SaveAs(@"C:\path\to\output.zip"); }.

如何在 C# 中讀取並擷取 ZIP 檔案的內容?

您可以透過 IronZipArchive 類別開啟 ZIP 檔案,並從中讀取及擷取內容。請使用 ExtractArchiveToDirectory 方法指定解壓縮檔案的目標目錄。 範例:using (var zip = new IronZipArchive(@"C:\path\to\archive.zip")) { zip.ExtractArchiveToDirectory(@"C:\path\to\output\directory"); }.

我可以在 C# 中向現有的 ZIP 壓縮檔中新增檔案嗎?

是的,您可以使用 C# 將檔案新增至現有的 ZIP 壓縮檔中。請透過 IronZipArchive 類別開啟現有的 ZIP 檔案,使用 Add 方法加入額外檔案,然後透過 SaveAs 方法儲存更新後的壓縮檔。

在 C# 中有哪些可用於 ZIP 管理的函式庫?

IronZip 是一個可在 NuGet 上取得的綜合性程式庫,用於在 C# 中管理 ZIP 檔案。它讓您能夠透過 IronZipArchive 等類別,高效地建立、讀取及解壓縮 ZIP 檔案。

在 C# 中該如何處理 TAR 和 GZIP 等其他壓縮格式?

除了 ZIP 檔案外,您還可使用 IronZip 管理其他壓縮格式。針對 TAR、GZIP 和 BZIP2,請分別使用 IronTarArchiveIronGZipArchiveIronBZip2Archive 類別,以類似的方式處理這些格式。

如何在 C# 中開始處理 ZIP 檔案?

首先請從 NuGet 下載 IronZIP程式庫。建立 IronZipArchive 類別的實例以建立或開啟 ZIP 檔案,並使用 AddExtractArchiveToDirectory 等方法來管理壓縮檔。

是否可以在 C# 中從 ZIP 壓縮檔中提取特定檔案?

是的,在 C# 中可以從 ZIP 壓縮檔中提取特定檔案。請使用 IronZipArchive 開啟 ZIP 檔案,並透過該函式庫提供的方法存取欲提取的檔案。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 21,060 | 版本: 2026.6 just released
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronZip
執行範例 觀看您的檔案變成存檔。