Non, et oui. Il n'y a pas de collection EntriesInDirectory. Cependant, il est simple de comparer les chaînes pour sélectionner les entrées qui "appartiennent" à un répertoire particulier.
Dans LINQ, il ressemble à ceci:
var selection = from e in zip.Entries
where e.FileName.StartsWith(directoryName)
select e;
Dans une boucle, il ressemble à ceci:
var list = new List<ZipEntry>();
foreach (var e in zip.Entries) {
if (e.FileName.StartsWith(directoryName)) {
list.Add(e);
}
}
EDIT
Vous pourriez avoir à faire des conversions pour le cas sensibilité. Sous Windows, le cas n'est pas significatif dans les noms de fichiers.
Explication supplémentaire: le format zip ne traite pas un répertoire dans le fichier zip en tant que conteneur. Il n'y a pas de relation de conteneur entre les entrées d'annuaire et les entrées de fichier. La seule façon de savoir si une entrée de fichier "appartient" à un répertoire particulier est d'examiner le nom complet de l'entrée du fichier. Si le nom de l'entrée commence par le nom du répertoire en question, l'entrée est "dans" le répertoire.
Avez-vous regardé ici? http://stackoverflow.com/questions/2324626/extract-a-zip-file-programmatically-by-dotnetzip-library –
Merci Edward, mais je veux simplement que les noms des fichiers :) Je pense que je pourrais faire quelque chose par un peu de manipulation de chaîne de bits. Les dossiers se terminent par un "/" –