如何使用 .NET ZipArchive 和 ZipArchiveEntry 类通过密码提取文件

问题描述 投票:0回答:1

我正在使用以下代码提取 zip 文件的内容:

using(ZipArchive zipArchive = new ZipArchive(memoryStream))
{
    foreach (ZipArchiveEntry entry in zipArchive.Entries)
    {
        entry.ExtractToFile("extract.txt");
    }
}

这非常适合那些不受密码保护的 zip 文件,但是,我需要它也适用于那些受密码保护的密码。

我已经看到其他示例可以使用其他类或其他代码实现我想要的目标,但我发现这种方式非常干净,我希望有一个属性可以在其中设置密码(它不需要是任何比这更困难)。

c# .net passwords c#-ziparchive
1个回答
3
投票

正如 Oded 所说,内置类不支持密码。您应该尝试使用外部库,例如 DotNetZip。它是免费的、功能强大的,并且支持您需要的几乎所有内容。

在这种情况下,您的示例是:

 using (ZipFile zip = ZipFile.Read(ExistingZipFile))
  {
    ZipEntry e = zip["TaxInformation-2008.xls"];
    e.ExtractWithPassword(BaseDirectory, Password);
  }
© www.soinside.com 2019 - 2024. All rights reserved.