面向 C# 開發人員的 IronXL Zip 檔案教學
ZipArchive簡介
每當想到要以壓縮格式發送檔案時,人們首先想到的通常是 Zip 壓縮包。 Zip 壓縮包是一種流行的格式,可以將單一檔案或整個檔案集壓縮打包到一個壓縮包中。然而,當需要壓縮的檔案數量龐大時,處理起來可能會非常繁瑣,因為您必須逐一進行壓縮和格式化。 但事情並非一定要如此。 大量任務需要透過程式設計方式實現自動化。 我們可以使用 IronZip 這個簡單而直覺的函式庫來實現所有這些以及更多功能。
在本文中,我們將簡要討論 IronZip 的核心特性和功能,以及它如何幫助您更好地自動化工作流程、提高效率並消除容易出錯的手動任務。
從資料夾或檔案建立新的 zip 文件
下面的範例程式會接收多個文件,將它們壓縮到一個存檔中,並在操作完成後匯出它們。 本文中的所有範例都包含在static void Main()方法中,以避免重複的程式碼區塊。
using IronZip;
class Program
{
static void Main(string[] args)
{
// Create an empty ZIP archive
using (var archive = new IronZipArchive())
{
// Add files to the ZIP archive
archive.Add("./assets/image1.jpg");
archive.Add("./assets/image2.jpg");
archive.Add("./assets/image3.jpg");
// Export the ZIP archive to a file
archive.SaveAs("output.zip");
}
}
}using IronZip;
class Program
{
static void Main(string[] args)
{
// Create an empty ZIP archive
using (var archive = new IronZipArchive())
{
// Add files to the ZIP archive
archive.Add("./assets/image1.jpg");
archive.Add("./assets/image2.jpg");
archive.Add("./assets/image3.jpg");
// Export the ZIP archive to a file
archive.SaveAs("output.zip");
}
}
}- 我們先導入 IronZip。
- 然後,我們使用 IronZip 建立一個歸檔檔案。
- 我們呼叫
archive.Add()方法在歸檔檔案中新增多個檔案。請記住,路徑名必須是絕對路徑,否則操作將無法找到對應的檔案。 - 最後,我們呼叫
archive.SaveAs()將 zip 檔案匯出為output.zip。
使用新文件或修改更新現有 zip 文件
我們來看另一個例子; 這次,我們將使用新檔案編輯現有的 zip 壓縮包,以展示 IronZip 的功能。
using IronZip;
class Program
{
static void Main(string[] args)
{
// Open an existing ZIP archive
using (var archive = IronZipArchive.FromFile("existing.zip"))
{
// Add additional files to the existing ZIP archive
archive.Add("./assets/image3.png");
archive.Add("./assets/image4.png");
// Export the updated ZIP archive to a new file
archive.SaveAs("result.zip");
}
}
}using IronZip;
class Program
{
static void Main(string[] args)
{
// Open an existing ZIP archive
using (var archive = IronZipArchive.FromFile("existing.zip"))
{
// Add additional files to the existing ZIP archive
archive.Add("./assets/image3.png");
archive.Add("./assets/image4.png");
// Export the updated ZIP archive to a new file
archive.SaveAs("result.zip");
}
}
}- 我們先導入 IronZip。
- 使用 IronZip,我們建立一個歸檔文件,但這次,我們使用
IronZipArchive.FromFile()導入現有的 zip 檔案。 - 我們呼叫
archive.Add()方法將所需檔案加入到歸檔檔案中。請記住,路徑名必須是絕對路徑,否則操作將無法找到現有檔案。 - 最後,我們呼叫
archive.SaveAs()將更新的 zip 檔案匯出為result.zip。
如上文程式碼所示,其操作和格式與建立和新增 Zip 檔案的操作類似。主要區別在於,我們導入的是 Zip 文件,這體現了 IronZip 簡潔直覺的功能。
從 Zip 壓縮包中提取文件
我們也可以使用 IronZip 從 Zip 壓縮檔案或 Zip 套件中提取檔案。 我們透過另一個例子來複習一下。
using IronZip;
class Program
{
static void Main(string[] args)
{
// Extract the ZIP archive content to a specified directory
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
}
}using IronZip;
class Program
{
static void Main(string[] args)
{
// Extract the ZIP archive content to a specified directory
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
}
}我們導入 IronZip 並呼叫IronZipArchive.ExtractArchiveToDirectory() 。 此方法將現有 zip 壓縮包的內容提取到指定的目標目錄。
此外,在需要處理受密碼保護的 zip 壓縮檔案時,我們可以使用另一種方法來提取壓縮檔案。
using IronZip;
class Program
{
static void Main(string[] args)
{
// Extract the protected ZIP archive content to a specified directory
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
}
}using IronZip;
class Program
{
static void Main(string[] args)
{
// Extract the protected ZIP archive content to a specified directory
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
}
}最後,我們傳入另一個參數:受保護的 ZIP 壓縮檔案的密碼。其餘操作與上述相同。
進階主題和最佳實踐
上面討論的新增、提取和建立歸檔的程式碼範例是處理 zip 歸檔時最常用的。 但是,對於更進階的用法,例如提取其他格式或查看存檔內容,IronZIP 不僅能滿足您的需求,還能提供更多功能。
IronZIP 的進階功能
*跨平台相容性: IronZIP 與多種 .NET 版本相容,包括 .NET Core (3.1+)、Standard (2.0+) 和 .NET Framework (4.6.2+)。 該程式庫還支援 Web(Blazor)、行動裝置(MAUI)、桌面(WPF)和控制台。 這使得開發者能夠突破平台和版本限制。
*產生歸檔檔案:除了 ZIP 格式外,IronZIP 還支援建立 TAR、GZIP 和 BZIP2 歸檔檔案。
*擷取歸檔檔案:如上所示,使用 IronZIP 和單一程式碼區塊即可輕鬆擷取歸檔檔案和解壓縮檔案。
*新增檔案和檔案系統: IronZIP 可以透過新增影像、文字檔案和文件(例如 PDF、DOCX 和 XLSX)以及音訊檔案(例如 MP3 和 WAV)來輔助操作 zip 壓縮套件。它甚至可以將整個檔案系統或單一文字檔案壓縮到ZipArchive 壓縮包中。
*匯出和建立:您可以對符合 AES128 和 AES256 標準的歸檔檔案進行密碼保護。 此外,您還可以產生和匯出 TAR、GZIP 和 BZIP2 等格式。
*自訂壓縮等級: IronZIP 允許開發者調整壓縮設置,以根據自身需求微調演算法。
*編輯歸檔:使用 IronZIP 作為編輯相關操作的綜合解決方案,輕鬆新增、擷取或刪除歸檔中的檔案條目。
*檔案條目屬性: IronZIP 提供了設定可選的存檔註釋和檢索檔案中檔案名稱的功能,而無需提取它們,這有助於為每個檔案留下特定的註釋。
*授權選擇: IronZIP 提供靈活的授權選擇,包括免費試用版,讓開發者能夠選擇最適合他們需求的授權方式。
結論
處理壓縮文件和歸檔文件是開發人員經常面臨的日常任務,但管理大量此類文件可能會帶來壓力,並且容易出現人為錯誤。 雖然有 System.IO.Compression 之類的選項,但使用 IronZIP 可以實現更多功能,並在處理壓縮檔案時快速解決問題。 在本文中,我們討論了 IronZIP 的高級功能和常見操作,例如建立 zip 檔案、刪除條目或新增檔案。 了解如何使用 IronZIP 以程式設計方式執行這些任務,可以提高處理歸檔檔案的效率、可擴充性和自動化程度。
[{i:(System.IO.Compression 是其各自所有者的註冊商標。 本網站與 System.IO.Compression 公司沒有任何關聯,也未獲得其認可或贊助。 所有產品名稱、標誌和品牌均為其各自所有者的財產。 文中比較僅供參考,反映的是撰寫本文時公開可取得的資訊。
常見問題解答
如何在C#中從資料夾建立ZIP檔案?
要在 C# 中從資料夾建立 ZIP 文件,可以使用 IronZip 庫。首先,匯入 IronZip 函式庫,建立IronZipArchive實例,使用archive.AddFolder()新增資料夾,然後使用archive.SaveAs()儲存。
如何使用 C# 從 ZIP 壓縮檔案中提取資料?
您可以使用 C# 中的 IronZip 函式庫,透過呼叫IronZipArchive.ExtractArchiveToDirectory()方法從 ZIP 壓縮套件中提取資料。此方法可讓您指定要將內容提取到的目錄。
如何使用 C# 以程式設計方式更新 ZIP 壓縮檔案的內容?
要在 C# 中以程式設計方式更新 ZIP 存檔的內容,請使用 IronZip,透過IronZipArchive.FromFile()載入現有存檔,然後使用archive.Add()新增檔案或archive.Remove()刪除文件,最後使用archive.SaveAs()儲存變更。
IronZip 可以處理受密碼保護的 ZIP 檔案嗎?
是的,IronZip 可以處理受密碼保護的 ZIP 檔案。您可以在使用IronZipArchive.ExtractArchiveToDirectory()方法提取檔案時,透過提供額外的密碼參數來指定密碼。
與 System.IO.Compression 相比,使用 IronZip 處理 ZIP 檔案有哪些優點?
IronZip 提供了比 System.IO.Compression 更高級的功能,例如支援多種歸檔格式、密碼保護、自訂壓縮級別,以及無需提取檔案即可透過新增或刪除檔案來編輯歸檔的功能。
IronZip 如何確保與不同 .NET 版本的兼容性?
IronZip 透過支援多個 .NET 版本來確保跨平台相容性,使開發人員能夠將 ZIP 檔案處理功能整合到在各種平台和框架上運行的應用程式中。
IronZip 為處理 ZIP 壓縮檔提供了哪些進階功能?
IronZip 提供高級功能,例如產生和提取多種存檔格式(ZIP、TAR、GZIP、BZIP2)、密碼保護、自訂壓縮等級以及全面的編輯功能,而無需提取檔案。
是否可以使用 IronZip 管理 ZIP 壓縮包中的檔案屬性?
是的,IronZip 允許您管理 ZIP 檔案中的文件屬性(例如註釋),而無需先提取文件,從而增強存檔管理的靈活性和效率。
如何在C#中自動建立和解壓縮ZIP檔?
在 C# 中,您可以使用 IronZip 函式庫,並在static void Main()中實作 ZIP 檔案的自動建立和解壓縮。這樣,您就可以以程式設計方式自動執行諸如向壓縮包添加檔案、提取資料以及更新現有壓縮包等操作。
IronZip是否支援處理整個檔案系統?
是的,IronZip 支援整個檔案系統的壓縮和解壓縮,因此非常適合高效處理大量資料。






