跳至頁尾內容
USING IRONZIP

如何在 .NET Core 中解壓文件

1. 引言

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

使用者可以通過解壓縮的方式檢索ZIP壓縮檔案的內容,這是反向執行壓縮過程。 存取為了更有效的傳輸、儲存或共享而打包在一起的單個文件或文件夾是其常見用途。 在"解壓"程式完成後,文件的原始結構得以恢復,使用者可以根據需要讀取、修改或使用它們。 在本文中,我們將使用IronZIP Archive Library在Asp.net core中解壓文件。

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

  1. 建立一個新的Asp.net Core專案。
  2. 將IronZIP程式庫安裝到建立的專案中。
  3. 要解壓文件,實例化IronArchive類。
  4. ZIP文件可以通過使用ExtractArchiveToDirectory函式進行提取。
  5. 指定需要解壓文件的目標文件。

3. IronZIP程式庫

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程式後選擇"File"選項。 選擇"new project",然後選擇"Asp.Net core Web App"。

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

Visual Studio專案現在將生成所選應用程式的結構。 在此情況下,正使用ASP.NET MVC。 因此,我們有兩個選擇:要麼使用當前的控制器,這允許您新增程式碼並構建/運行應用程式,要麼建立一個新的。

然後可以新增程式庫並測試程式碼。

4. IronZIP Package下載

4.1 使用Visual Studio

您可以使用Visual Studio的NuGet Package Manager功能直接將包安裝到解決方案中。 您可以使用下面的快照圖存取NuGet Package Manager。

如何在.NET Core中解壓文件:圖1 - 如何存取NuGet Package Manager

它提供了一個搜尋框,顯示NuGet網站包列表。下面的截圖顯示了如何在包管理器中搜尋"IronZIP"短語。

如何在.NET Core中解壓文件:圖2 - 在NuGet Package Manager中搜尋IronZIP

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

4.2 使用Visual Studio命令行

在Visual Studio中,選擇"Tools > NuGet Package Manager"以查看Package Manager Console。

在package manager的terminal標籤中輸入以下行:

Install-Package IronZip

下載和安裝到活動專案後,該包已準備好使用。

4.3 從NuGet網站直接下載

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

導航到那裡以打開連結。

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

當包下載完成後,雙擊該包。 它將自行安裝。

再次載入解決方案並在專案中開始使用。

4.4 從IronZIP網站直接下載

點擊此連結以直接從網站獲取最新的包。下載後,按照隨附的程式將包新增到專案中。

  • 在解決方案視窗中右鍵單擊專案。
  • 歡迎下載後選擇引用並瀏覽其位置。
  • 點擊"OK"以新增引用。

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
            {
                // Retrieve the uploaded file from the form
                var file = Request.Form.Files[0];

                // Set the file path where the file will be saved
                string filepath = @"C:\temp\uploads\";

                // Save the uploaded file to the specified filepath
                using (var stream = new FileStream(filepath + file.FileName, FileMode.Create))
                {
                    file.CopyToAsync(stream);
                }

                // Extract the ZIP archive to the specified directory
                string extractfile = @"C:\temp\extracted";
                IronZipArchive.ExtractArchiveToDirectory(filepath + file.FileName, extractfile);
            }
            catch (Exception ex)
            {
                // Handle exception and redirect to Error page
                _logger.LogError(ex, "An error occurred while extracting the ZIP file.");
                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
            {
                // Retrieve the uploaded file from the form
                var file = Request.Form.Files[0];

                // Set the file path where the file will be saved
                string filepath = @"C:\temp\uploads\";

                // Save the uploaded file to the specified filepath
                using (var stream = new FileStream(filepath + file.FileName, FileMode.Create))
                {
                    file.CopyToAsync(stream);
                }

                // Extract the ZIP archive to the specified directory
                string extractfile = @"C:\temp\extracted";
                IronZipArchive.ExtractArchiveToDirectory(filepath + file.FileName, extractfile);
            }
            catch (Exception ex)
            {
                // Handle exception and redirect to Error page
                _logger.LogError(ex, "An error occurred while extracting the ZIP file.");
                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
				' Retrieve the uploaded file from the form
				Dim file = Request.Form.Files(0)

				' Set the file path where the file will be saved
				Dim filepath As String = "C:\temp\uploads\"

				' Save the uploaded file to the specified filepath
				Using stream = New FileStream(filepath & file.FileName, FileMode.Create)
					file.CopyToAsync(stream)
				End Using

				' Extract the ZIP archive to the specified directory
				Dim extractfile As String = "C:\temp\extracted"
				IronZipArchive.ExtractArchiveToDirectory(filepath & file.FileName, extractfile)
			Catch ex As Exception
				' Handle exception and redirect to Error page
				_logger.LogError(ex, "An error occurred while extracting the ZIP file.")
				Return RedirectToAction("Error")
			End Try

			Return RedirectToAction("Get")
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

在上面的程式碼中,確保已匯入IronZIP namespace。 IronZIP的ExtractArchiveToDirectory函式。 這允許我們傳遞兩個參數:源文件系統和解壓文件的路徑。 ZIPArchivezip文件可以有任意數量的內容,可以使用它提取內容並保存到指定的文件目錄中。 目錄路徑作為單個ZIP文件內容的提取點,是ExtractArchiveToDirectory方法唯一需要的參數。

為了將所有文件提取到指定的目錄,此函式內部迴圈遍歷ZIP包中的所有文件和目錄。 當出現異常,例如ZIP文件丟失或提取程式有問題時,確保您謹慎處理它。 您可以使用try-catch塊捕獲和處理異常。 對於大量提取活動,ExtractArchiveToDirectory方法通過管理ZIP壓縮檔案中所有文件和目錄的提取來簡化提取。可以在IronZIP擴展方法的幫助下建立ZIP文件。

如需閱讀更多有關IronZIP程式庫的資訊,請點擊這裡

5. 結論

開發者可以借助於IronZIP來處理壓縮、解壓和操作ZIP文件。IronZIP是為了在C#應用程式中專門管理ZIP文件的.NET程式庫。 IronZIP採用直觀的API,簡化了複雜的過程,並使文件操作如提取特定文件、大量提取文件、新增條目和修改現有壓縮包更簡單。

使用這個程式庫,開發者可以在C#專案中提升文件管理能力而不必從頭開始。 它輕鬆整合。 由於其靈活性,ZIP內容可以動態更改,文件可以被新增、更改和移除以滿足各種應用程式需求。

當處理像丟失或損壞的ZIP文件這類情況時,IronZIP強大的異常處理功能保證了一個一致的工作流程並使錯誤修正更容易。 雖然IronZIP歷來提供了一種在.NET環境中管理ZIP文件的可靠解決方案,但請注意我的理解可能不反映最新的升級。 IronZIP的定價起價為$999,並附有免費開發者版本。 要了解更多有關授權的資訊,我們可以參考這裡。 如需了解Iron Software產品,請檢查這裡

常見問題

我如何在ASP.NET Core中解壓縮檔案?

您可以透過使用IronZIP程式庫在ASP.NET Core中解壓縮檔案。首先,通過Visual Studio的NuGet套件管理器安裝IronZIP,然後使用IronArchive類和ExtractArchiveToDirectory方法將ZIP檔案中的檔案提取到指定的目錄。

IronZIP處理ZIP檔案的主要功能是什麼?

IronZIP為處理ZIP檔案提供了多種功能,包括建立、提取、壓縮、加密和操作ZIP檔案。它支持密碼保護並針對性能進行了優化,相容於各種.NET框架。

我如何在C#項目中安裝IronZIP?

要在C#項目中安裝IronZIP,請使用Visual Studio中的NuGet套件管理器。搜尋'IronZIP'並安裝。或者,在命令管理台使用命令Install-Package IronZIP

IronZIP可以用於加密ZIP檔案嗎?

是的,IronZIP可以加密ZIP檔案。它包括密碼保護和加密工具,以確保ZIP檔案內容的安全。

如果在ASP.NET Core中的ZIP檔案提取過程中遇到錯誤,我該怎麼辦?

如果您在ZIP檔案提取過程中遇到錯誤,請使用IronZIP的異常處理功能。實施try-catch塊以處理如缺失或損壞的ZIP檔案等異常。

是否有提供給開發者使用的IronZIP免費版本?

是的,IronZIP提供免費的開發者版本,允許您在無需初始費用的情況下探索其功能,並有付費授權可選。

為什麼我要在ASP.NET Core項目中使用IronZIP來管理ZIP檔案?

IronZIP透過提供直觀的API來簡化ASP.NET Core項目中的ZIP檔案管理,包括建立、提取和修改ZIP檔案,提高檔案管理能力。

IronZIP如何處理ZIP檔案提取?

IronZIP使用ExtractArchiveToDirectory方法處理ZIP檔案提取,它會將所有檔案和目錄從ZIP檔案中提取到指定的目錄路徑,從而有效地管理ZIP包中的每個元素。

建立一個可以與IronZIP一起使用的新ASP.NET Core項目的流程是什麼?

要建立一個可與IronZIP一起使用的新ASP.NET Core項目,請在Visual Studio中設立一個新項目,透過NuGet安裝IronZIP,並實施IronArchive類以使用ExtractArchiveToDirectory之類的方法來管理ZIP檔案。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話