與其他組件的比較 IronXL 使用 C# 開發人員的 Zip 壓縮教程 Jordi Bardia 更新:6月 22, 2025 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在雙子座打開 請向 Gemini 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 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"); } } } Imports IronZip Friend Class Program Shared Sub Main(ByVal args() As String) ' Create an empty ZIP archive Using 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") End Using End Sub End Class $vbLabelText $csharpLabel 我們先導入 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"); } } } Imports IronZip Friend Class Program Shared Sub Main(ByVal args() As String) ' Open an existing ZIP archive Using 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") End Using End Sub End Class $vbLabelText $csharpLabel 我們先導入 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"); } } Imports IronZip Friend Class Program Shared Sub Main(ByVal args() As String) ' Extract the ZIP archive content to a specified directory IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted") End Sub End Class $vbLabelText $csharpLabel 我們導入 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"); } } Imports IronZip Friend Class Program Shared Sub Main(ByVal args() As String) ' Extract the protected ZIP archive content to a specified directory IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd") End Sub End Class $vbLabelText $csharpLabel 最後,我們傳入另一個參數:受保護的 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 以程式設計方式執行這些任務,可以提高處理歸檔檔案的效率、可擴充性和自動化程度。 請注意System.IO.Compression 是其各自所有者的註冊商標。 本網站與 System.IO.Compression 公司沒有任何關聯,也未獲得其認可或贊助。 所有產品名稱、標誌和品牌均為其各自擁有者的財產。 比較資料僅供參考,並反映撰寫時的公開資訊。 常見問題解答 如何在 C# 中從資料夾中建立 ZIP 檔案? 若要在 C# 中從資料夾建立 ZIP 檔案,您可以使用 IronZIP 函式庫。首先,匯入 IronZIP 函式庫,建立 IronZipArchive 的實例,使用 archive.AddFolder() 新增資料夾,並使用 archive.SaveAs() 儲存。 使用 C# 從 ZIP 存檔中萃取資料的流程為何? 您可以透過呼叫 IronZIPArchive.ExtractArchiveToDirectory() 方法,在 C# 中使用 IronZIP 從 ZIP 存檔中萃取資料。此方法允許您指定一個目錄,內容將被擷取。 如何使用 C# 程式化更新 ZIP 存檔的內容? 要在 C# 中以程式化的方式更新 ZIP 存檔的內容,請使用 IronZip,方法是使用 IronZipArchive.FromFile() 載入現有的存檔,然後在使用 archive.SaveAs() 儲存變更之前,使用 archive.Add() 新增檔案或使用 archive.Remove() 刪除檔案。 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 檔案? 透過在 static void Main() 方法中使用 IronZIP,您可以在 C# 中自動建立和提取 ZIP 檔案。這可讓您以程式化的方式自動執行新增檔案至存檔、擷取資料以及更新現有存檔等程序。 IronZIP 是否支援處理整個檔案系統? 是的,IronZIP 支援整個檔案系統的壓縮與萃取,適合有效率地處理大量資料。 Jordi Bardia 立即與工程團隊聊天 軟體工程師 Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担产品测测试,产品开发和研究的责任时,Jordi 为持续的产品改进增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。 相關文章 發表日期 12月 18, 2025 使用 C# 建立 Excel 檔案:IronXL 和其他替代庫的比較 發掘在 C# 中創建電子表格的最佳替代 Excel Interop 的方法。比較頂級 Excel 函式庫的功能、許可協議及程式碼範例。 閱讀更多 更新7月 28, 2025 比較三個開放源代碼的 C# Excel 函式庫 本文將探討三個 C# 開源 Excel 程式庫,旨在簡化 .NET 環境中的 Excel 檔案操作 閱讀更多 更新8月 4, 2025 EPPlus 讀取 Excel 到 DataTable C#(IronXL 教程) EPPlus 是一個功能強大的開源庫,用於在 C# 中創建和操作 Excel 文件。它提供了一個簡單直觀的 API,允許開發人員以程式的方式生成、讀取和修改 Excel 試算表。 閱讀更多 IronXL 和 GemBox.Spreadsheet 的比較EPPlus 讀取 Excel 到 DataTable C...
發表日期 12月 18, 2025 使用 C# 建立 Excel 檔案:IronXL 和其他替代庫的比較 發掘在 C# 中創建電子表格的最佳替代 Excel Interop 的方法。比較頂級 Excel 函式庫的功能、許可協議及程式碼範例。 閱讀更多
更新8月 4, 2025 EPPlus 讀取 Excel 到 DataTable C#(IronXL 教程) EPPlus 是一個功能強大的開源庫,用於在 C# 中創建和操作 Excel 文件。它提供了一個簡單直觀的 API,允許開發人員以程式的方式生成、讀取和修改 Excel 試算表。 閱讀更多