8
votes

C # Rechercher un sous-répertoire (pas pour les fichiers)

Chaque exemple que je vois semble être pour obtenir de manière récursive des fichiers dans les sous-répertoires utilise uniquement des fichiers. Ce que j'essaie de faire est de rechercher un dossier pour un sous-répertoire particulier nommé "xxx", puis enregistrez ce chemin d'accès à une variable afin que je puisse l'utiliser pour d'autres choses.

est-ce possible sans boucler à travers tous les répertoires et comparer par nom?


0 commentaires

6 Réponses :


0
votes

Oui, je pense que la seule solution disponible (à court de bibliothèques tierces) est une recherche récursive pour le répertoire via une comparaison de noms.


0 commentaires

0
votes

Vous pouvez utiliser une recherche Windows qui fournit également API pour .NET. Voici des informations plus détaillées: Windows Search 4.0 pour les développeurs < / a>


0 commentaires

13
votes

Bien

IEnumerable<string> list = Directory.GetDirectories(root).Where(s => s.Equals("test"));


1 commentaires

Une amélioration de .NET 4 est Directory.EnumeratedirectRactories qui ne vous oblige pas à charger toute la liste des répertoires dans un tableau. Il retourne directement un iéenumérable. Il y a aussi des annuaires.Enumèexfiles pour les fichiers.



1
votes

Tout d'abord, "non, il n'est pas possible sans boucle à travers tous les répertoires et comparer par nom".

Je crois que votre vraie question est "Y a-t-il une API existante qui gérera la boucle à travers tous les répertoires et Comparaison par nom pour moi? "

Oui, il y a. Ça s'appelle répertoire.exists () : xxx


0 commentaires

8
votes
var foldersFound = Directory.GetDirectories(root, "test", SearchOption.AllDirectories)
This will return a string array with all the folders found with the given name. You can change the last parameter so that it only checks top level directories and you can change root to adjust where it is starting from.

1 commentaires

Est-il possible de sauter des dirteurs interdits? Comme si vous cherchez dans c: \ et ne voulez pas regarder dans Windows, etc.?



0
votes

Voici un extrait de recherche d'un dossier à l'aide de deux filtres lors de la prise en compte de la non autoriséeAccessException, il peut être refoulé d'utiliser un seul filtre: XXX

Exemple d'utilisation: < Pré> xxx


0 commentaires