En utilisant SharpZipLib, le code suivant fonctionne. Et par les travaux, je veux dire entry.IsCrypted
renvoie vrai ou faux basé sur s'il existe ou non un mot de passe pour la première entrée dans le fichier zip.
var file = @"c:\testfile.zip";
FileStream fileStreamIn = new FileStream(file, FileMode.Open, FileAccess.Read);
ZipInputStream zipInStream = new ZipInputStream(fileStreamIn);
ZipEntry entry = zipInStream.GetNextEntry();
Console.WriteLine("IsCrypted: " + entry.IsCrypted);
Il y a un tutoriel simple sur l'utilisation SharpZipLib sur CodeProject.
Ainsi, une implémentation simple ressemble à quelque chose comme:
public static bool IsPasswordProtectedZipFile(string path)
{
using (FileStream fileStreamIn = new FileStream(path, FileMode.Open, FileAccess.Read))
using (ZipInputStream zipInStream = new ZipInputStream(fileStreamIn))
{
ZipEntry entry = zipInStream.GetNextEntry();
return entry.IsCrypted;
}
}
Remarque il n'y a pas de véritable manipulation ou quoi que ce soit une erreur ...
voir cette question: [comment compresser et décompresser en utilisant le mot de passe dans C# programme] (http://stackoverflow.com/questions/1607858/how-to-zip-and-unzip-using-password-in-c- programme) – manji