使用IRONZIP

如何在.NET Core中解压文件

查克尼特·宾
查克尼特·宾
2024年一月4日
分享:

1.导言

"解压缩 "描述的是将文件和文件夹从 ZIP 压缩包中取出并解压的过程。 “解压缩”是指将压缩文件或目录恢复到其原始状态的过程,以便在压缩成ZIP文件后,可以再次访问和使用。 我们可以在压缩文件中添加各种类型的文件,如图片、TXT 文件等、

用户可以通过解压缩(即逆转压缩过程)来获取 ZIP 压缩包的内容。 访问打包在一起的单个文件或文件夹,以便更有效地传输、存储或共享,这是它的一个常用用途。 在完成 "解压 "程序后,文件将保持其原始结构,用户可以根据需要进行阅读、更改或使用。 在本文中,我们将使用 IronZIP Archive Library 来解压 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 Framework 中,它提供了以编程方式处理 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 中解压缩文件

您需要提供文件名和希望提取文件的目的地,才能使用 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{
            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
$vbLabelText   $csharpLabel

在上述代码中,请确保导入了 IronZIP 命名空间。 IronZIP 的 ZipFile 类中包含了 ExtractArchiveToDirectory 函数。 这样,我们就可以传递两个参数,即源文件系统和解压文件的路径。 ZIPArchive zip 文件可以包含任意数量的内容,内容可以使用它提取并保存到指定文件的目录中。 目录路径作为单个 ZIP 文件内容的提取点,是 ExtractArchiveToDirectory 方法唯一需要的参数。

为了将所有文件提取到指定目录,该技术会在内部循环遍历 ZIP 包内的所有文件和目录。 当出现异常情况时,例如 ZIP 文件丢失或提取过程出现问题,请务必谨慎处理。 可以使用 try-catch 块来捕获和处理异常。 对于大规模提取活动,ExtractArchiveToDirectory 方法通过管理 ZIP 存档内所有文件和目录的提取,使提取更轻松。可以借助 IronZIP 扩展方法创建 Zip 文件。

要了解有关IronZIP库的更多信息,请点击此处

结论

开发人员可以在 IronZIP 的帮助下处理 ZIP 文件的压缩、提取和操作,IronZIP 是一个 .NET 库,专门设计用于在 C# 应用程序中管理 ZIP 文件。 IronZIP 采用直观的 API,简化了复杂的程序,使提取特定文件、批量提取文件、添加条目和修改现有归档文件等文件操作变得更加简单。

有了这个库,开发人员可以提高文件管理能力,而不必在 C# 项目中从头开始。 毫不费力地集成。 ZIP 具有多功能性,其内容可以动态更改,可以添加、更改和删除文件,以满足各种应用需求。

在处理 ZIP 文件丢失或损坏等情况时,IronZIP 强大的异常处理功能可确保工作流程的一致性,并使错误补救变得更加容易。 过去,IronZIP 为在 .NET 设置中管理 ZIP 文件提供了值得信赖的解决方案,尽管我的理解可能没有反映最新的升级。 IronZIP 的价格起始于 $749,并附带免费开发者版本。 要了解更多关于许可证的信息,我们可以参考这里。 有关 Iron 软件产品,请查看此处

查克尼特·宾
软件工程师
Chaknith 负责 IronXL 和 IronBarcode 的工作。他在 C# 和 .NET 方面拥有深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的洞察力,有助于提升产品、文档和整体体验。
< 前一页
ZipArchive C#(开发者教程)
下一步 >
如何在C#中打开Zip文件

准备开始了吗? 版本: 2025.4 刚刚发布

查看许可证 >