我正在使用以下代码提取 zip 文件的内容:
using(ZipArchive zipArchive = new ZipArchive(memoryStream))
{
foreach (ZipArchiveEntry entry in zipArchive.Entries)
{
entry.ExtractToFile("extract.txt");
}
}
这非常适合那些不受密码保护的 zip 文件,但是,我需要它也适用于那些受密码保护的密码。
我已经看到其他示例可以使用其他类或其他代码实现我想要的目标,但我发现这种方式非常干净,我希望有一个属性可以在其中设置密码(它不需要是任何比这更困难)。
正如 Oded 所说,内置类不支持密码。您应该尝试使用外部库,例如 DotNetZip。它是免费的、功能强大的,并且支持您需要的几乎所有内容。
在这种情况下,您的示例是:
using (ZipFile zip = ZipFile.Read(ExistingZipFile))
{
ZipEntry e = zip["TaxInformation-2008.xls"];
e.ExtractWithPassword(BaseDirectory, Password);
}