我使用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
有什么问题?
答案 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);
}