使用 IRONZIP

如何使用 C# 壓縮資料夾中的檔案

發佈 2024年2月18日
分享:

ZIP 文件是使用 ZIP 格式包含一個或多個壓縮文件或文件夾的文件。這是將多個文件或文件夾壓縮並歸檔到單個文件中的一種常見方式。它們可以減少數據的大小、節省磁盤空間並使在互聯網上傳輸文件變得更容易。在本文中,您將學習如何操作 ZIP 檔案在 C# 使用該 IronZIP library。您將了解如何以編程方式創建、閱讀、提取和更新ZIP文件,以及如何使用IronZIP的各種功能,例如加密、密碼保護和壓縮級別。本文結束時,您將能夠輕鬆地在您的C#應用程式中使用IronZIP來處理ZIP文件。

我們將在這篇文章中涵蓋的內容

  1. 在我們的專案中安裝 IronZIP

  2. 建立 ZIP 檔案

  3. 建立加密 ZIP 檔案

  4. 解壓 ZIP 檔案

  5. 解壓加密 ZIP 檔案

  6. 存取現有的 ZIP 檔案

什麼是 IronZIP?

IronZIP 是一個功能強大且多功能的C# ZIP歸檔庫,允許您以程式化方式創建、讀取和解壓ZIP文件。它支持多種歸檔格式,例如 ZIP, TAR, GZIP,和 BZIP2。它還支持 密碼保護, 加密和壓縮等級。IronZIP 兼容 .NET 8, 7, 6, Core, Standard 和 Framework。

IronZIP 可以幫助您處理各種與 ZIP 文件相關的用例,並享受工作中的好處,例如:

  1. 創建備份系統: 您可以使用 IronZIP 將重要的文件和文件夾壓縮和加密成 ZIP 壓縮檔,並將其存放在安全的位置。這樣,您可以節省磁碟空間並保護數據免於未授權的訪問。

  2. 發送電子郵件附件: 您可以使用 IronZIP 將電子郵件附件壓縮成 ZIP 文件,減小附件的大小。這可以幫助您避免超出文件大小限制並加快傳輸過程。

  3. 從網絡下載文件: 您可以使用 IronZIP 從網絡下載並解壓縮 ZIP 文件,例如軟件包、文檔、圖像和其他類型的文件。這可以幫助您節省頻寬和時間,並輕鬆訪問所需的文件。

IronZIP 入門指南

在編寫程式碼之前,您需要在 C# 專案中安裝 IronZIP NuGet 套件。IronZIP 是一個通過 NuGet 提供的流行壓縮庫。

安裝 IronZIP 庫

要安裝 IronZIP,您可以在 Visual Studio 中使用 NuGet 包管理器控制台。只需運行以下命令:

Install-Package IronZip

或者,您可以直接從官方下載套件 IronZIP 網站。一旦安裝完成,您可以透過在您的C#代碼頂端新增以下命名空間來開始。

using IronZip;
using IronZip;
Imports IronZip
VB   C#

在資料夾檔案中建立 C# ZIP 檔

我們可以使用 IronZIP 輕鬆地在資料夾中建立 ZIP 檔。 以下程式碼將壓縮指定目錄中的所有檔案。

static void Main(string [] args)
{
    string [] fileArray = Directory.GetFiles(@"D:\Docs\");
    using (var archive = new IronZipArchive())
    {
        foreach (var file in fileArray)
        {
            // Add files to the ZIP
            archive.Add(file);
        }
        // Export the ZIP
        archive.SaveAs("myZipFile.zip");
    }
}
static void Main(string [] args)
{
    string [] fileArray = Directory.GetFiles(@"D:\Docs\");
    using (var archive = new IronZipArchive())
    {
        foreach (var file in fileArray)
        {
            // Add files to the ZIP
            archive.Add(file);
        }
        // Export the ZIP
        archive.SaveAs("myZipFile.zip");
    }
}
Shared Sub Main(ByVal args() As String)
	Dim fileArray() As String = Directory.GetFiles("D:\Docs\")
	Using archive = New IronZipArchive()
		For Each file In fileArray
			' Add files to the ZIP
			archive.Add(file)
		Next file
		' Export the ZIP
		archive.SaveAs("myZipFile.zip")
	End Using
End Sub
VB   C#

上面的 C# 代碼使用 IronZIP 庫將所有文件壓縮成一個 ZIP 文件。代碼執行以下操作:

  • 我們宣告了一個名為 fileArray 的字串數組,並將其賦值為 Directory.GetFiles 方法的結果,傳入目錄的路徑。 ("D:\Docs") 作為參數。此方法返回一個字符串數組,其中包含指定目錄中所有文件的全名。
  • 我們創建了一個 IronZipArchive 類的新實例,該實例表示內存中的 ZIP 壓縮包。該實例被分配給名為 archive 的變量,並包裹在 using 語句中,這確保了代碼塊結束時 ZIP 壓縮包被處理掉。
  • 然後,我們使用 foreach 迴圈遍歷了 fileArray 數組,並且對於每個文件,它調用了 archive 對象的 Add 方法,將文件名作為參數傳遞。此方法會向 ZIP 壓縮包中添加一個新條目,其名稱和內容與文件相同。
  • 最後,我們調用了 archive 對象的 SaveAs 方法,將 ZIP 文件的名稱作為參數傳遞。 (“myZipFile.zip”) 作為參數。此方法將 ZIP 壓縮檔保存到當前檔案系統中的檔案。

我們可以藉由幾行程式碼輕鬆地建立新的 ZIP 壓縮檔。

輸出

輸出為:

如何使用 C# 壓縮文件夾中的文件:圖 1 - 來自前一個代碼示例的輸出文件

建立受密碼保護的 ZIP 檔案

IronZIP 提供了最簡單的方法來建立受密碼保護的 ZIP 檔案。以下的程式碼範例將壓縮檔案並建立一個帶有密碼的 ZIP 檔案。

using (var archive = new IronZipArchive())
 {
     foreach (var file in fileArray)
     {
         // Add files to the ZIP
         archive.Add(file);
     }
    // Set Password and Encryption Method
     archive.Encrypt("myPa55word", EncryptionMethods.AES256);
     // Export the ZIP
     archive.SaveAs("myZipFile.zip");
 }
using (var archive = new IronZipArchive())
 {
     foreach (var file in fileArray)
     {
         // Add files to the ZIP
         archive.Add(file);
     }
    // Set Password and Encryption Method
     archive.Encrypt("myPa55word", EncryptionMethods.AES256);
     // Export the ZIP
     archive.SaveAs("myZipFile.zip");
 }
Using archive = New IronZipArchive()
	 For Each file In fileArray
		 ' Add files to the ZIP
		 archive.Add(file)
	 Next file
	' Set Password and Encryption Method
	 archive.Encrypt("myPa55word", EncryptionMethods.AES256)
	 ' Export the ZIP
	 archive.SaveAs("myZipFile.zip")
End Using
VB   C#

行 archive.Encrypt("myPa55word", EncryptionMethods.AES256); 設置密碼 ("myPa55word") 使用 IronZIP 的 ZIP 壓縮檔案。它通過對壓縮檔案應用 AES-256 加密來增強安全性,確保只有擁有正確密碼的用戶才能訪問其內容。此功能在 C# 應用程序中存儲或傳輸敏感數據時非常有價值。我們需要在第二個參數中傳遞指定的加密算法模式。

該文件如下所示已加密。

輸出

如何使用 C# 壓縮資料夾中的檔案:圖 2 - 前一個程式碼範例輸出的加密檔案

我們已經看過通過遍歷指定路徑中的目錄來創建ZIP文件的演示。現在,我們來看看解壓縮文件的例子。

從 ZIP 壓縮檔中提取文件

IronZIP 提供了從 C# 中的 ZIP 壓縮檔提取文件的方法。以下程式碼範例將從 ZIP 壓縮檔中提取壓縮文件。

IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles");
IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles");
IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles")
VB   C#

程式碼 IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles")利用IronZIP從"myZipFile.zip"中提取所有文件,並將它們放置在"myExtractedFiles"目錄。這種簡潔的方法簡化了在C#中提取ZIP檔案的過程,為文件提取任務提供了方便的解決方案。

輸出

輸出如下:

如何使用 C# 壓縮資料夾中的檔案:圖 3 - 來自前述程式碼範例的輸出檔案

如何從受密碼保護的 ZIP 檔案中提取

IronZIP 也提供了一種方法來提取受密碼保護的 ZIP 檔案。以下程式碼將使用 IronZIP 方法從指定的 ZIP 檔案中提取所有現有的檔案和目錄。

IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word");
IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word");
IronZipArchive.ExtractArchiveToDirectory("myZipFile.zip", "myExtractedFiles", "myPa55word")
VB   C#

IronZipArchive 類別的 ExtractArchiveToDirectory 方法將 ZIP 壓縮檔案中的所有條目解壓縮到指定的目錄。此方法傳遞三個參數:ZIP 檔案的路徑 (“myZipFile.zip”)目的目錄的路徑 ("myExtractedFiles"), 以及 ZIP 檔案的密碼 (“myPa55word”)這樣一來,我們就可以輕鬆提取受密碼保護的zip檔案了。

如何存取現有的壓縮檔案

IronZIP 提供了一些方法來 存取現有的檔案庫 並查看檔案中所有的條目。

using (var archive = new IronZipArchive("myZipFile.zip", "myPa55word"))
{
    // Get Entries list
    List<string> names = archive.GetArchiveEntryNames();
    foreach (string name in names)
    {
        Console.WriteLine(name);
    }
}
using (var archive = new IronZipArchive("myZipFile.zip", "myPa55word"))
{
    // Get Entries list
    List<string> names = archive.GetArchiveEntryNames();
    foreach (string name in names)
    {
        Console.WriteLine(name);
    }
}
Using archive = New IronZipArchive("myZipFile.zip", "myPa55word")
	' Get Entries list
	Dim names As List(Of String) = archive.GetArchiveEntryNames()
	For Each name As String In names
		Console.WriteLine(name)
	Next name
End Using
VB   C#

提供的C#代碼使用IronZIP通過加載名為“myZipFile.zip”且密碼為“myPa55word”的ZIP文件來創建一個安全的IronZipArchive實例。如果文件未加密,則不要傳遞密碼參數。然後檢索並打印條目名稱列表。 (檔案和資料夾名稱) 在加密的 ZIP 檔案內。

GetArchiveEntryNames 方法會收集條目名稱,並透過 for-each 迴圈將每個名稱輸出到控制台。這展示了 IronZIP 如何以簡潔的方式,實現從密碼保護的 ZIP 檔案中安全存取和檢索條目信息。

輸出

如何使用 C# 壓縮資料夾中的檔案:圖 4 - 來自前述範例程式碼的輸出

結論

總之,IronZIP 證明了它是一個強大且多功能的 C# 庫,適用於處理 ZIP 文件。它的功能不僅僅限於基本操作。 壓縮提取提供如以下功能 密碼保護,編碼及與各種壓縮格式的相容性。無論是創建備份系統、管理電子郵件附件,或從網絡下載文件,IronZIP 使這些任務簡單且高效。

通過將 IronZIP 集成到您的 C# 應用程序中,您將獲得一個強大的工具來處理 ZIP 文件,加強數據安全,並優化文件傳輸過程。您可以免費受益 試用 根據需要。

< 上一頁
如何在 C# 中將 Zip 壓縮檔案解壓縮到目錄
下一個 >
如何在 VB .NET 中解壓縮 Zip 文件

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 4,566 查看許可證 >