使用.NET 4.5解压缩受密码保护的ZIP文件

So *_*ins 31 .net c# zip .net-4.5

Microsoft在System.IO.Compression命名空间中引入了.NET 4.5中ZIP文件处理的改进.即ZipArchiveZipFile类.但是,我还没有看到过对密码保护文件使用本机.NET ZIP文件处理的方法.有没有办法实现这个目标?(我知道有很好的第三方zip文件库,这不是问题.)

Oli*_*ver 24

不幸的是..Net Framework 4.5中不支持受密码保护的zip文件.在这种情况下,您必须切换到众所周知的第三方库之一.


Nic*_*rey 20

正如所指出的,DotNetZip是你的朋友.解压缩您的zip文件非常简单

using ( ZipFile archive = new ZipFile( @"c:\path\to\your\password\protected\archive.zip",) )
{
  archive.Password = "your-pass-word-here" ;
  archive.Encryption = EncryptionAlgorithm.PkzipWeak ; // the default: you might need to select the proper value here
  archive.StatusMessageTextWriter = Console.Out;

  archive.ExtractAll( @"c:\path\to\unzip\directory\", ExtractExistingFileAction.Throw ) ;
}
Run Code Online (Sandbox Code Playgroud)

根据我的经验,DotNetZip的运行速度与Info-Zip的开源解压缩实用程序一样快,并且使用的内存大致相同.


编辑注: DotNetZip曾经住在Codeplex.Codeplex已关闭.Codeplex仍然可以使用旧存档.看起来代码已迁移到Github:


  • 请读者注意,截至 2019 年,SharpZipLib 更加活跃/流行:https://github.com/icsharpcode/SharpZipLib (3认同)

Jon*_*ica 5

离子方法很棒.我尝试了其他三种方法,这是迄今为止最好的方法.不要浪费时间,只需使用它.

https://dotnetzip.codeplex.com/wikipage?title=PS-Examples

支持密码加密和其他zip选项.