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

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

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存档中解压缩文件spose.ZIP帮你快速解决

使用C#解压缩文件

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

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

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

分别解压缩每个文件

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

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

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

// Open ZIP fileusing (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open)){using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions())){    // Access each entry in ZIP archivefor (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 filesarchive.Entries[i].Extract(archive.Entries[i].Name);}}}
将文件解压缩到文件夹中

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

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

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

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

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

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

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

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

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

// Open ZIP fileusing (FileStream zipFile = File.Open("encrypted.zip", FileMode.Open)){  // Decrypt and extract to foldernew Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }).ExtractToDirectory("decrypted");}

还想要更多吗可以点击阅读【2019 · Aspose最新资源整合】查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(),我们很高兴为您提供查询和咨询
标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月20日
下一篇 2020年3月20日

相关推荐

发表回复

登录后才能评论