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

时间:2016-10-18 18:41:01

标签: c# zip password-protection 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

有什么问题?

1 个答案:

答案 0 :(得分:25)

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);
}