跳過到頁腳內容
使用 IRONZIP

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

1.簡介

"解壓縮"是指將檔案和資料夾從 ZIP 壓縮包中取出並解壓縮的過程。 "Unzip" refers to the process of recovering compressed files or directories back to their original condition, so that they can be accessed and used again after being compressed into a ZIP file. 我們可以將各種類型的檔案新增到 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庫

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 應用程式"。

在對應的文字方塊中,輸入項目名稱並選擇檔案位置。 接下來,按一下"建立"按鈕,然後選擇所需的 .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 中解壓縮文件

要使用 C# 中的 IronZIP 從 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 命名空間。 IronZIP 的IronZipArchive類別中包含ExtractArchiveToDirectory函數。 這樣我們就可以傳遞兩個參數:來源檔案系統和解壓縮檔案的路徑。 ZIPArchive zip 檔案可以包含任意數量的內容,並且可以使用該檔案提取內容並將其儲存到檔案指定的目錄中。 ExtractArchiveToDirectory方法只需要一個參數,即目錄路徑,該路徑用作提取單一 ZIP 檔案內容的點。

為了將所有檔案提取到指定目錄,函數內部會循環遍歷 ZIP 套件中的所有檔案和目錄。 當出現異常情況時,例如 ZIP 檔案遺失或提取過程出現問題,請務必謹慎處理。 可以使用 try-catch 程式碼區塊來擷取和處理異常。 對於批次提取操作, ExtractArchiveToDirectory方法透過管理 ZIP 壓縮包內所有檔案和目錄的提取,簡化了提取過程。可以使用 IronZIP 擴充方法建立 ZIP 檔案。

要了解有關 IronZIP 庫的更多信息,請點擊此處

5.結論

借助 IronZIP(一個專為在 C# 應用程式中管理 ZIP 檔案而設計的 .NET 程式庫),開發人員可以處理 ZIP 檔案的壓縮、提取和操作。 IronZIP 透過簡化複雜的流程,簡化提取特定文件、批量提取文件、新增條目和修改現有存檔等文件操作,採用了直覺的 API。

借助此程式庫,開發人員無需在 C# 專案中從頭開始即可改進文件管理功能。 它能輕鬆融入環境。 由於其多功能性,ZIP 內容可以動態更改,可以添加、更改和刪除文件,以滿足各種應用程式的需求。

在處理諸如 ZIP 檔案遺失或損壞等情況時,IronZIP 強大的異常處理功能可確保工作流程的一致性,並使錯誤修復更加容易。 雖然 IronZIP 一直以來都是在 .NET 環境中管理 ZIP 檔案的可靠解決方案,但請注意,我的理解可能不會反映最新的升級。 IronZIP 的定價從$799起,並附贈一個免費的開發者版本。 如需了解更多許可證信息,請點擊此處查看。 有關 Iron 軟體產品,請點擊此處查看。

常見問題解答

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

您可以在 ASP.NET Core 中使用 IronZIP 函式庫來解壓縮檔案。首先,在 Visual Studio 中通過 NuGet Package Manager 安裝 IronZIP,然後使用 IronArchive 類和 ExtractArchiveToDirectory 方法從 ZIP 存檔中提取檔案到指定目錄。

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

IronZIP 提供多種處理 ZIP 檔案的功能,包括建立、萃取、壓縮、加密和操作 ZIP 檔案。它支援密碼保護,並針對效能進行最佳化,與各種 .NET Framework 相容。

如何在 C# 專案中安裝 IronZIP?

要在 C# 專案中安裝 IronZIP,請使用 Visual Studio 中的 NuGet Package Manager。搜尋「IronZIP」並安裝。或者,使用套件管理員控制台,執行指令 Install-Package IronZIP

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

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

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

如果您在 ZIP 檔案擷取過程中遇到錯誤,請使用 IronZIP 的異常處理功能。實施 try-catch 區塊來處理異常,例如 ZIP 檔案遺失或損毀。

IronZIP 是否有提供給開發人員的免費版本?

是的,IronZIP 提供免費的開發者版本,讓您可以探索其功能,無需任何初始成本,同時也提供付費授權。

為什麼要使用 IronZIP 來管理 ASP.NET Core 專案中的 ZIP 檔案?

IronZIP 提供直觀的 API 用於建立、解壓縮和修改 ZIP 存檔,增強了檔案管理功能,從而簡化了 ASP.NET Core 專案中的 ZIP 檔案管理。

IronZIP 如何處理 ZIP 檔案萃取?

IronZIP 使用 ExtractArchiveToDirectory 方法處理 ZIP 檔案萃取,可將 ZIP 存檔中的所有檔案和目錄萃取至指定的目錄路徑,有效管理 ZIP 包內的每個元素。

創建一個新的 ASP.NET Core 專案與 IronZIP 搭配使用的流程為何?

要創建一個新的 ASP.NET Core 專案與 IronZIP 搭配使用,請在 Visual Studio 中建立一個新專案,透過 NuGet 安裝 IronZIP,並實作 IronArchive 類,以使用 ExtractArchiveToDirectory 等方法管理 ZIP 檔案。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。