Pourquoi mon dossier zip n'est-il pas verrouillé avec un mot de passe, mais les fichiers qu'il contient sont verrouillés ?

Aug 19 2020

Je me bats depuis quelques heures maintenant, essayant de définir un mot de passe sur un dossier zip. Cependant, même si j'ai essayé plusieurs fois avec un code différent, le mot de passe est appliqué à chaque fichier dans le dossier zip, et ce n'est pas ce que je veux. Je veux seulement appliquer le mot de passe au dossier lui-même, et aucun mot de passe ne doit être défini pour les fichiers individuels à l'intérieur.

Voici mon code : (Pour votre information, j'utilise DotNetZip)

//Assume that there is a folder with multiple files in it at C:\\ExampleFolder
using (Ionic.Zip.ZipFile z = Ionic.Zip.ZipFile())
{
    z.Password = "MyPassword";            //Setting the password
    z.AddDirectory(@"C:\\ExampleFolder"); //I thought the directory added here should be pw-protected
    z.Save(@"C:\\FinalResult.zip");       //Create the pw-protected zip folder
}

Cependant, lorsque j'exécute ce programme, il crée un dossier zip nommé FinalResult.zip, mais ce dossier zip n'est pas protégé par un mot de passe. Tous les fichiers à l'intérieur de ce dossier zip sont protégés par mot de passe. Si tel est le cas, l'utilisateur devra entrer le mot de passe chaque fois qu'il essaiera d'ouvrir un fichier à l'intérieur, ce qui est plutôt gênant. Je veux juste que l'utilisateur n'ait à entrer le mot de passe qu'une seule fois lorsqu'il essaie d'ouvrir le dossier zip. Quelqu'un peut-il me dire pourquoi ce code ne fait pas ce que je veux réaliser?

Réponses

2 vvvv4d Aug 19 2020 at 03:36

Le mot de passe fonctionne correctement :

Lors de l'écriture d'une archive zip, ce mot de passe est appliqué aux entrées, pas à l'archive zip elle-même. Elle s'applique à tout ZipEntry ajouté ultérieurement au ZipFile, à l'aide de l'une des méthodes AddFile, AddDirectory, AddEntry ou AddItem, etc. Lors de la lecture d'une archive zip, cette propriété s'applique à toute entrée extraite ultérieurement du ZipFile à l'aide de l'une des méthodes Extract sur la classe ZipFile.

Voir la section des remarques dans la documentation de PasswordDotNetZip

https://documentation.help/DotNetZip/4444d7a5-3324-8af9-3ed3-5bf6551d3cd1.htm