彩票走势图

想要用编程方式在ZIP存档中解压缩文件?Aspose.ZIP帮你快速解决

翻译|使用教程|编辑:李显亮|2020-04-24 11:56:28.353|阅读 646 次

概述:在本文中,我将向您展示如何使用C#以编程方式提取或解压缩ZIP档案中的文件。我们还将介绍如何解压缩受密码保护或AES加密的ZIP归档文件。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

ZIP档案是用来压缩和保持一个或多个文件或文件夹到一个单一的容器中。ZIP归档文件封装了文件和文件夹,并保存了它们的元数据信息。归档的最常见用法是减小用于存储或传输的文件的大小,并应用加密以提高安全性。

Aspose.ZIP for .NET是用于标准ZIP格式的灵活文档压缩和存档操作API。API使.NET应用程序能够实现文件压缩/解压缩,文件存档以及文件夹和存档加密。

Aspose.Zip for .NET已升级至V20.3,如果你还没有用过Aspose.Zip可以点击这里下载最新版测试。

在本文中,我将向您展示如何使用C#以编程方式提取或解压缩ZIP档案中的文件。我们还将介绍如何解压缩受密码保护或AES加密的ZIP归档文件。本文将演示:

  • 解压缩C#中ZIP档案中的文件。
  • 用C#解压缩受密码保护的ZIP文件。
  • 在C#中解压缩AES加密的ZIP文件。
想要用编程方式在ZIP存档中解压缩文件?Aspose.ZIP帮你快速解决

使用C#解压缩文件

解压缩文件的过程可以通过两种方式实现:

  • 分别解压缩ZIP中的每个文件。
  • 将文件解压缩到指定的文件夹中。

在第一种方法中,您可以显式访问ZIP归档文件中的每个文件并将其解压缩。此外,您可以打印提取过程的进度。而第二种方法只是将文件解压缩到指定的文件夹中。

分别解压缩每个文件

以下是访问和解压缩文件以及打印提取进度的步骤:


  • 将ZIP存档打开到FileStream对象中。
  • 使用FileStream对象创建并初始化Archive的实例。
  • 使用Archive.Entries集合访问ZIP中的文件。
  • 设置ArchiveEntry.ExtractionProgressed事件处理程序以打印提取进度。
  • 使用ArchiveEntry.Extract(string)方法提取/解压缩文件。

下面的代码示例演示如何使用C#解压缩ZIP存档中的文件。

// Open ZIP file
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions()))
	{
    // Access each entry in ZIP archive
		for (int i = 0; i < archive.Entries.Count; i++) { int percentReady = 0; archive.Entries[i].ExtractionProgressed += (s, e) =>
			{
				int percent = (int)((100 * e.ProceededBytes) / ((ArchiveEntry)s).UncompressedSize);
				if (percent > percentReady)
				{
					Console.WriteLine(string.Format("{0}% decompressed", percent));
					percentReady = percent;
				}
			};
      // Extract files
			archive.Entries[i].Extract(archive.Entries[i].Name);
		}
	}
}
将文件解压缩到文件夹中

以下步骤用于将文件解压缩到特定文件夹中。


  • 使用FileStream类打开ZIP存档。
  • 创建一个Archive类的实例,并使用ZIP的FileStream对象对其进行初始化。
  • 使用Archive.ExtractToDirectory(string)方法解压缩文件。

以下C#代码示例将文件解压缩到文件夹中。

// Open ZIP file
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
	using (var archive = new Archive(zipFile))
	{
    // Unzip files to folder
		archive.ExtractToDirectory("Unzipped Files");
	}
}

在C#中解压缩受密码保护的ZIP文件

可以使用Aspose.ZIP for .NET解压缩受密码保护的ZIP存档。为此,您只需要使用ArchiveLoadOptions类指定密码,该类将作为第二个参数传递给Archive的构造函数。以下是使用C#解压缩受密码保护的ZIP文件的示例代码。

// Open ZIP file
using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open))
{
  // Decrypt using password
	using (var archive = new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
	{
    // Extract files to folder
		archive.ExtractToDirectory("Unzipped Files");
	}
}

在C#中解压缩AES加密的ZIP文件

ZIP存档也可以使用AES加密进行加密。用于.NET的Aspose.ZIP支持使用AES128,AES192和AES256加密方法对存档进行加密。解压缩AES加密的ZIP文件类似于解压缩受密码保护的ZIP文件。只需使用ArchiveLoadOptions类指定解密密码,其余的将由API处理。以下代码示例显示了如何在C#中解压缩AES加密的ZIP文件。

// Open ZIP file
using (FileStream zipFile = File.Open("encrypted.zip", FileMode.Open))
{
  // Decrypt and extract to folder
	new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }).ExtractToDirectory("decrypted");
}
还想要更多吗?您可以点击阅读【2019 · Aspose最新资源整合】查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(642018183),我们很高兴为您提供查询和咨询
标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP