Установите пароль на Zip-файл, используя 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 ответ
Решение
Только записи, добавленные после 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);
}