與其他組件比較

使用 IronXL 的 C# 開發人員的 ZIP 壓縮檔案教程

發佈 2025年2月5日
分享:

ZipArchive介紹

每當你考慮以壓縮格式傳送文件時,首先想到的通常是一個 Zip 壓縮檔案。Zip 壓縮檔案是一種流行的格式,用於壓縮和打包單個文件或整個集合到單個檔案中。然而,當需要壓縮大量文件時,處理這些文件可能會變得令人沮喪,因為你必須逐一壓縮並格式化它們。 但不必如此。 大數值任務需要自動化以程式方式完成。 我們可以使用 IronZIP,一個簡單但直觀的庫,來實現這一切及更多。

在本文中,我們將簡要討論IronZIP的核心功能及其如何幫助您更好地自動化工作流程、提高效率並消除容易出錯的手動任務。

從資料夾或文件創建新的zip檔案

以下是一個範例,它接收五個文件,將它們壓縮成一個檔案,並在操作後導出。 本文中的所有範例都封裝在靜態 void main 中,以避免重複的代碼。

using IronZip;

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

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

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

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

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

	' Export the ZIP
	archive.SaveAs("output.zip")
End Using
$vbLabelText   $csharpLabel
  1. 我們首先導入IronZIP。

  2. 然後,使用IronZIP,我們創建一個壓縮檔案。

  3. 然後我們呼叫 archive.add()` 並將多個文件添加到存檔中。請記住,傳遞的路徑名稱必須是絕對路徑,否則操作將無法找到相應的文件。

  4. 最後,我們呼叫 `archive.SaveAs()並將壓縮檔案匯出為`output.zip`。

更新現有的 zip 文件以新增文件或修改內容

讓我們來看看另一個例子; 這次,我們將編輯現有的 ZIP 存檔並添加新文件,以展示 IronZIP 的功能。

using IronZip;

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

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

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

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

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

	' Export the ZIP
	archive.SaveAs("result.zip")
End Using
$vbLabelText   $csharpLabel
  1. 我們首先導入IronZIP。

  2. 然後,使用 IronZIP 我們創建一個檔案,但這次,我們使用 IronZipArchive.FromFile 匯入現有的 zip 檔案()`.

  3. 然後我們呼叫 archive.add()並將所需的文件添加到存檔中。請記住,傳遞的路徑名稱必須是絕對路徑,否則操作將無法找到現有文件。或者,使用變量字串檔名分離此步驟以便單一文件更易於閱讀。

  4. 最後,我們呼叫 `archive.SaveAs()` 並將 zip 檔案匯出為 `result.zip.`

    如您從上面的程式碼中所見,操作和格式類似於創建和添加文件到 Zip 檔案中。主要的區別是我們改為匯入 zip 檔案,這展示了 IronZIP 簡單而直觀的功能。

從 Zip 壓縮檔中提取文件

我們也可以使用IronZIP從Zip檔案或Zip封包中提取文件,如上面的示例所示; 讓我們在另一個例子中審視它。

using IronZip;

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

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

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

我們匯入 IronZip 並呼叫 IronZipArchive.ExtractArchieveToDirectory; 該方法按照標籤操作,僅將現有壓縮檔案的內容提取到指定的目錄。

此外,在需要處理受密碼保護的壓縮檔案時,我們還可以使用另一種方法來提取這些壓縮檔案。

using IronZip;
using IronZip.Enum;

// Extract protected ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
using IronZip;
using IronZip.Enum;

// Extract protected ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
Imports IronZip
Imports IronZip.Enum

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

最後,我們傳入另一個參數:受保護壓縮檔案的密碼。其餘操作與上述代碼相同。

進階主題與最佳實踐

上面列出的新增、提取和創建的程式碼範例是處理 zip 壓縮檔案時最常見的。 然而,在其他需要更高級使用的情況下,例如提取其他格式或僅僅查看壓縮包內容,IronZIP 都能滿足您的需求並提供更多功能。

IronZIP 的進階功能

  • 跨兼容性:IronZIP 與多個 .NET 版本兼容,包括 .NET Core(8.7, 6.5, and 3.1+),標準(2.0+),和 .NET Framework(4.6.2+). 該庫也可以在網頁上運行(Blazor),行動裝置(MAUI),桌面(WPF)、和控制台。 這使得開發人員能夠真正超越平台和版本的限制。
  • 生成壓縮檔:上述範例主要集中在ZIP壓縮格式; 然而,IronZip 也支援 TAR、GZIP 和 BZIP2。
  • 提取壓縮檔案:使用 IronZip 僅需一段代碼即可提取壓縮檔案和解壓縮文件,如上所示。
  • 新增檔案和檔案系統:IronZIP 還可以幫助您充分操作 ZIP 壓縮檔案,新增影像、文字檔案、文件如 PDF、DOCX 和 XLSX,以及音訊如 MP3 和 WAV。您甚至可以新增整個壓縮檔案系統或壓縮文字檔案以建立 ZipArchive 檔案
  • 匯出和創建:除了創建基本的 Zip 存檔之外,您還可以使用傳統或 AES128 和 AES256 標準為其設置密碼保護。 您還可以生成並匯出上述提到的格式,如TAR、GZIP和BZIP2。
  • 自定壓縮級別:IronZIP 具備自定壓縮檔案功能,並允許開發者變更壓縮算法的設定,以便根據自身需求進行微調。
  • 編輯檔案:使用 IronZIP 輕鬆新增檔案條目、提取檔案以及刪除檔案條目,這是一個用於所有與檔案編輯相關操作的一站式解決方案。
  • 文件條目屬性:IronZIP可讓您設置可選的壓縮檔註釋,並在不解壓縮的情況下獲取壓縮檔內文件的文件名,這有助於為每個文件留下指定的註釋。
  • 授權選擇:IronZIP 提供適應性的Licensing Options,包括免費試用版本,讓開發者選擇最符合自己需求的產品。

結論

處理壓縮文件和檔案是開發人員每天都必須做的事情,但處理大量此類文件可能會帶來壓力並導致易於出錯的情況。 雖然有像 System.IO.Compression 這樣的選項,但使用 IronZIP,您可以更快速地解決在處理壓縮檔案時遇到的問題。 在本文中,我們簡要討論了IronZIP的高級功能以及在日常情境中常見的基本操作,無論是創建zip壓縮檔、刪除zip壓縮檔中的項目,還是添加更多文件。 了解如何使用 IronZIP 以程式化方式來實現它們,將提高效率和可擴展性,並自動化所有與壓縮檔案相關的任務。

喬迪·巴迪亞

喬迪·巴迪亞

軟體工程師

 LinkedIn |  Website

Jordi 最擅長 Python、C# 和 C++,當他不在 Iron Software 發揮技能時,他會進行遊戲編程。他負責產品測試、產品開發和研究,為持續產品改進增添了巨大的價值。多樣化的經驗使他感到挑戰和投入,他說這是與 Iron Software 合作的最喜歡的方面之一。Jordi 在佛羅里達州邁阿密長大,並在佛羅里達大學學習計算機科學和統計學。
< 上一頁
IronXL與GemBox.Spreadsheet之間的比較
下一個 >
EPPlus讀取 Excel 到 Datatable 的C# (IronXL 教程)