使用 DotNetZip 在 Zip 文件上设置密码

Set password on Zip file using DotNetZip

我正在使用 DotNetZip 压缩我的文件,但我需要在 zip 中设置密码。

我试过了:

public void Zip(string path, string outputPath)
    {
        using (ZipFile zip = new ZipFile())
        {
            zip.AddDirectory(path);
            zip.Password = "password";
            zip.Save(outputPath);
        }
    }

但是输出的zip没有密码

参数path有一个子文件夹,例如: path = c:\path\ 在路径里面我有 subfolder

怎么了?

只有在设置 Password 属性 之后添加的条目才会应用密码。为了保护您正在添加的目录,只需在调用 AddDirectory.

之前设置密码即可
using (ZipFile zip = new ZipFile())
{
    zip.Password = "password";
    zip.AddDirectory(path);
    zip.Save(outputPath);
}

请注意,这是因为 Zip 文件上的密码分配给 zip 文件中的条目,而不是 zip 文件本身。这使您可以保护一些 zip 文件,而另一些则不受保护:

using (ZipFile zip = new ZipFile())
{
    //this won't be password protected
    zip.AddDirectory(unprotectedPath);
    zip.Password = "password";
    //...but this will be password protected
    zip.AddDirectory(path);
    zip.Save(outputPath);
}