使用 IRONZIP

如何在 .NET Core 中解壓縮文件

發佈 2024年1月4日
分享:

1. 介紹

"解壓縮" 描述了從 ZIP 檔案中提取檔案和文件夾並解壓縮的過程。"解壓縮" 指的是將壓縮的檔案或目錄恢復到其原始狀態的過程,以便在被壓縮後可以再次訪問和使用它們。 ZIP 文件我們可以將各種類型的文件添加到壓縮文件中,像是圖片、TXT 文件等。

用戶可以透過解壓來檢索 ZIP 壓縮檔案的內容,這是一個逆壓縮過程的方法。訪問那些被打包在一起以提高傳輸、存儲或共享效率的個別文件或文件夾是一個很常見的用途。完成 "解壓" 程序後,文件將恢復其原始結構,用戶可以根據需求閱讀、更改或使用這些文件。在本文中,我們將使用 IronZIP 壓縮庫在 Asp.net core 中解壓文件。

2. 在 Asp.net Core 中解壓縮文件摘要

  1. 建立一個新的 Asp.net Core 專案

  2. 將 IronZIP 函式庫安裝到建立的專案中

  3. 要解壓縮文件,實例化 IronArchive 類。

  4. 可以使用 ExtractArchiveToDirectory 函數來解壓縮 ZIP 文件。

  5. 指定需要解壓縮文件的目標文件夾。

3. IronZIP Library

Iron Software 創建了 .NET 庫 IronZIP使得在 .NET 應用程式中更易於處理和管理 ZIP 檔案。它為程式設計師提供工具和功能,以多種方式與 ZIP 互動。這些功能包括生成、提取、壓縮、解壓縮、加密和修改 ZIP 檔案中的檔案和目錄。

3.1 IronZIP 的功能

  • ZIP 文件创建: 讓 .NET 應用程序從頭開始生成全新的 ZIP 檔案。
  • 提取和解壓: 能夠從現有的 ZIP 檔案中移除文件和目錄並解壓內容。
  • 壓縮: 提供將文件和文件夾壓縮成 ZIP 檔案的工具,以使它們在傳輸或存儲時變得更小。
  • 密碼保護和加密: 為了保護 ZIP 檔案的內容,此功能提供設置密碼保護和加密 ZIP 文件的能力。
  • 文件處理: 允許程序員在 ZIP 檔案內添加、刪除、更新或以其他方式處理文件和目錄。
  • 相容性: 被設計為能夠在各種 .NET 環境中運行,並與多個框架版本相容。
  • 性能优化: 針對最大化速度進行優化,使 .NET 應用程序能夠更有效地管理大型 ZIP 文件或數據集。

當應用程序開發人員需要管理 ZIP 文件時,IronZIP 是一個有用的工具。在 .NET 框架中,它提供了多種可編程操作 ZIP 檔案的功能,既簡單又多功能。

如需最新的功能、能力、兼容性以及後續版本新增功能的詳細信息,請查看官方文檔、釋出說明或 IronZIP 網站,因為軟件庫會隨時間進行更新和改進。了解更多信息請點擊 這裡.

3.2 在 Visual Studio 中創建新專案

啟動 Visual Studio 程式後,選擇檔案選項。選擇「新專案」,然後選擇「Asp.Net core Web App」。

在相關的文本框中輸入專案名稱並選擇檔案位置。接下來,點擊建立按鈕並選擇所需的 .NET Framework 版本。

Visual Studio 專案現在將生成所選應用程式的結構。在本例中,使用的是 ASP.NET MVC。因此,我們有兩個選項:使用當前的控制器,這樣可以添加代碼並構建/運行應用程式,或者創建一個新的控制器。

然後可以添加庫,並測試代碼。

4. IronZIP 套裝下載

4.1 使用 Visual Studio

您可以使用 Visual Studio 的 NuGet 套件管理器功能直接將套件安裝到您的解決方案中。您可以使用下面的快照來訪問 NuGet 套件管理器。

如何在 .NET Core 解壓文件:圖 1 - 如何訪問 NuGet 套件管理器

它提供了一個搜尋框,可以拉出一個NuGet網站包列表。下面的截圖顯示了我們在套件管理器中尋找" IronZIP "的位置。

在 .NET Core 中如何解壓縮檔案:圖 2 - 在 NuGet 套件管理員中搜尋 IronZIP

在上圖中,顯示了一個相關的搜尋詞列表。選擇所需的選項是安裝解決方案套件所必須的。

4.2 使用 Visual Studio 指令列

在 Visual Studio 中,選擇工具 > NuGet 套件管理員來查看套件管理員主控台。

在套件管理員的終端標籤中輸入以下命令:

Install-Package IronZip

下載並安裝到活動專案後,該套件便可使用。

4.3 直接從 NuGet 網站下載

使用第三種方法,可以獲得 NuGet 包 直接從網站下載。

導航到那裡以打開連結。

從右側的選單中選擇下載包選項。

下載後雙擊該包。它將自行安裝。

再一次加載解決方案並在項目中開始使用它。

4.4 直接從 IronZIP 網站下載

點擊此鏈接直接從獲取最新的軟體包 網站。 下載完成後,請按照隨附的程序將套件添加到專案中。

  • 在解決方案視窗中右鍵選擇專案。
  • 選擇參考,並在下載後瀏覽其位置。
  • 點擊“確定”以添加參考。

4.5 在 Asp.net core 中解壓縮文件

您需要提供文件名和目的地,這樣才能使用 IronZIP 在 C# 中從 ZIP 壓縮檔中提取特定文件。

代碼示例如下:

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using IronZip;
namespace IronPDF_WebApp.Pages
{
    public class IndexModel : PageModel
    {
        private readonly ILogger<IndexModel> _logger;
        public IndexModel(ILogger<IndexModel> logger)
        {
            _logger = logger;
        }
        public IActionResult OnPost()
        {
try{
            var file = Request.Form.Files [0];
            using (var stream = new FileStream(filepath + file.FileName, FileMode.Create))
            {
                 file.CopyToAsync(stream);
            }
            IronZipArchive.ExtractArchiveToDirectory(filepath + file.FileName, extractfile);
}
catch(Exception ex){
return RedirectToAction("Error");
}
            return RedirectToAction("Get");
        }
}
}
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using IronZip;
namespace IronPDF_WebApp.Pages
{
    public class IndexModel : PageModel
    {
        private readonly ILogger<IndexModel> _logger;
        public IndexModel(ILogger<IndexModel> logger)
        {
            _logger = logger;
        }
        public IActionResult OnPost()
        {
try{
            var file = Request.Form.Files [0];
            using (var stream = new FileStream(filepath + file.FileName, FileMode.Create))
            {
                 file.CopyToAsync(stream);
            }
            IronZipArchive.ExtractArchiveToDirectory(filepath + file.FileName, extractfile);
}
catch(Exception ex){
return RedirectToAction("Error");
}
            return RedirectToAction("Get");
        }
}
}
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Imports IronZip
Namespace IronPDF_WebApp.Pages
	Public Class IndexModel
		Inherits PageModel

		Private ReadOnly _logger As ILogger(Of IndexModel)
		Public Sub New(ByVal logger As ILogger(Of IndexModel))
			_logger = logger
		End Sub
		Public Function OnPost() As IActionResult
Try
			Dim file = Request.Form.Files (0)
			Using stream = New FileStream(filepath + file.FileName, FileMode.Create)
				 file.CopyToAsync(stream)
			End Using
			IronZipArchive.ExtractArchiveToDirectory(filepath + file.FileName, extractfile)
Catch ex As Exception
Return RedirectToAction("Error")
End Try
			Return RedirectToAction("Get")
		End Function
	End Class
End Namespace
VB   C#

在上述程式碼中,確保已匯入 IronZIP 命名空間。IronZIP 的 ZipFile 類別中包含 ExtractArchiveToDirectory 函數。這允許我們傳遞兩個參數,分別是來源檔案系統和解壓縮文件的路徑。ZIPArchive 壓縮文件可以包含任意數量的內容,並可使用該函數將其內容提取並保存到指定的目錄中。用作單個壓縮文件內容提取點的目錄路徑是 ExtractArchiveToDirectory 方法所需要的唯一參數。

要將所有文件提取到指定目錄,這種技術會在內部遍歷 ZIP 包內的所有文件和目錄。當出現異常情況,例如壓縮文件丟失或解壓過程中出現問題時,請確保您仔細處理。可以使用 try-catch 塊來捕獲和處理異常。對於大規模提取操作,ExtractArchiveToDirectory 方法透過管理壓縮歸檔內所有文件和目錄的提取來簡化提取過程。可以在 IronZIP 拓展方法的幫助下創建壓縮文件。

要了解更多有關 IronZIP 庫的資料,請點擊 這裡.

5. 結論

開發人員可以利用 IronZIP 這個專為在 C# 應用程式中管理 ZIP 文件而設計的 .NET 庫來處理 ZIP 文件的壓縮、提取和操作。IronZIP 通過精簡複雜的過程並使文件操作(如提取特定文件、大量提取文件、添加條目和修改現有檔案)變得更簡單,使用直觀的 API。

通過這個庫,開發人員可以在 C# 專案中提高文件管理能力,而無需從頭開始開發。其高度的靈活性允許動態修改 ZIP 內容,根據各種應用需求添加、更改和刪除文件。

在處理例如缺失或損壞的 ZIP 文件等情況時,IronZIP 強大的異常處理功能保證了工作流程的一致性並使錯誤修復變得更容易。過去,IronZIP 提供了在 .NET 環境中管理 ZIP 文件的可靠解決方案,儘管我的理解可能不反映最新的升級。IronZIP 的價格從 $749 開始,包括一個免費的開發者版本。要了解更多關於許可的信息,我們可以參考 這裡。檢查Iron Software產品 這裡.

< 上一頁
ZipArchive C#(開發者教程)
下一個 >
如何在 C# 中打開 Zip 文件

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

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