Установите пароль на 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);
}
Другие вопросы по тегам