2016-10-18 49 views
6

Używam DotNetZip do spakowania plików, ale muszę ustawić hasło w pliku zip.Ustaw hasło do pliku ZIP za pomocą DotNetZip

tryed:

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

Ale zip wyjścia nie ma hasła.

Parametr path ma podfolder dla exemple: path = c:\path\ i wewnątrz ścieżki mam subfolder

Co jest nie tak?

+0

zakładać ścieżka to C: \ folder1 \ folder2 \ plik1.txt którym folderze chcesz zip i zabezpieczyć hasłem? –

+0

Nie, ścieżka jest folderem, a folder ma podfolder. Chcę, aby DotNetZip zip mój podfolder i pliki w tym. Mogę to zrobić, ale hasło nie działa. Po raz pierwszy używam tej biblioteki. –

Odpowiedz

11

Tylko pozycje dodane po ustawieniu właściwości zostanie przypisana właściwość Password. Aby zabezpieczyć katalog, który dodajesz, ustaw hasło przed wywołaniem AddDirectory.

using (ZipFile zip = new ZipFile()) 
{ 
    zip.Password = "password"; 
    zip.AddDirectory(path); 
    zip.Save(outputPath); 
} 

Zauważ, że to dlatego, że hasła w plikach ZIP są przypisane do wpisów w pliku zip, a nie na plik ZIP siebie. To pozwala mieć niektóre z pliku zip chroniony, a niektóre nie:

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

Dzięki, o to chodzi. –