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()來將多個文件新增到存檔中。記住,路徑名必須是絕對路徑,否則操作將無法找到相應的文件。 - 最後,我們調用
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()將所需的文件新增到存檔中。記住,路徑名必須是絕對路徑,否則操作將無法找到現有文件。 - 最後,我們調用
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+)。 該程式庫還可在網頁 (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存檔中提取資料的過程是什麼?
您可以在C#中使用IronZip通過調用IronZipArchive.ExtractArchiveToDirectory()方法來從ZIP存檔中提取資料。此方法允許您指定將內容提取到的目錄。
如何在C#中以程式化方式更新ZIP存檔的內容?
要在C#中以程式化方式更新ZIP存檔的內容,使用IronZip通過IronZipArchive.FromFile()載入現有存檔,然後使用archive.Add()新增文件或使用archive.Remove()刪除文件,然後使用archive.SaveAs()保存更改。
IronZip能處理受密碼保護的ZIP文件嗎?
是的,IronZip能處理受密碼保護的ZIP文件。您可以在使用IronZipArchive.ExtractArchiveToDirectory()方法提取文件時指定密碼,將密碼作為額外的參數提供。
使用IronZip比System.IO.Compression在ZIP文件處理上有哪些好處?
IronZip提供了比System.IO.Compression更高級的功能,如支持多種存檔格式、密碼保護、自定壓縮等級,以及新增或刪除文件而不提取存檔即可進行編輯。
IronZip如何確保與不同.NET版本的跨平臺相容性?
IronZip確保跨平臺相容性,支持多個.NET版本,讓開發者能夠將ZIP文件處理功能整合到運行於不同平臺和框架的應用程式中。
IronZip處理ZIP存檔提供了哪些高級功能?
IronZip提供了多種高級功能,如生成和提取多種存檔格式(ZIP,TAR,GZIP,BZIP2),密碼保護,自定義壓縮水平,以及無需提取文件的全面編輯能力。
使用IronZip可以管理ZIP存檔中的文件屬性嗎?
是的,IronZip允許您管理ZIP存檔中的文件屬性如評論,而無需先提取文件,增強了存檔管理的靈活性和效率。
如何在C#中自動化ZIP文件的建立和提取?
您可以使用IronZip在static void Main()方法中自動化ZIP文件的建立和提取。這使您可以程式化地自動化過程,如向存檔新增文件、提取資料及更新現有存檔。
IronZip支援處理整個文件系統嗎?
是的,IronZip支持整個文件系統的壓縮和提取,適合有效處理大容量資料。



