using (ZipFile Zip = new ZipFile())
{
foreach(string file in Directory.GetFiles(folder))
{
Zip.AddFile(file, Path.GetFileName(file));
}
Zip.Save("test.Zip"));
}
Chaque fois que j'ajoute un fichier, cela crée un nouveau sous-dossier pour celui-ci.
Alors je veux finir avec:
test.Zip
- myDoc.doc
- myPdf.pdf
mais je termine avec:
test.Zip
- myDoc.doc
- myDoc.doc
- myPdf.pdf
- myPdf.pdf
Que diriez-vous simplement:
Zip.AddFile(file,"");
ou
Zip.AddFile(file,@"\");
Parce que la réponse approuvée était il y a 4 ans maintenant un jour est une autre façon (plus élégante) de faire cela, si vous voulez compresser tous les fichiers du répertoire (le code ci-dessus lui ressemble), vous pouvez utiliser:
ZipFile.CreateFromDirectory(sourceDirectoryName, destinationArchiveFileName, compressionLevel, includeBaseDirectory)
Vous êtes intéressé par le dernier paramètre (includeBaseDirectory) et en passant une valeur fausse.
Vous pouvez trouver plus d'informations ici: CreateFromDirectory (String, String, CompressionLevel, Boolean)