IronXL 使用 C# 開發人員的 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");
}
}
}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- 我們先導入 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- 我們先導入 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我們導入 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最後,我們傳入另一個參數:受保護的 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 以程式設計方式執行這些任務,可以提高處理歸檔檔案的效率、可擴充性和自動化程度。
常見問題解答
如何在 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 支援整個檔案系統的壓縮與萃取,適合有效率地處理大量資料。







