J'ai un répertoire principal qui a un groupe de sous-répertoires, chacun de ces sous-répertoires devrait avoir un fichier App.config et je souhaite la valider. Ce fichier APP.Config peut être n'importe quel endroit d'un sous-répertoire donné. Dès ma mise en œuvre ci-dessous, je peux vérifier si ce fichier de configuration est immédiatement à l'intérieur du sous-répertoire donné (par exemple, si le répertoire SUB est "Dossier" Je vérifierai si l'app.confg est disponible dans le dossier de chemin \ app.config) mais Ça ne parvient pas à vérifier si l'app.config est dans n'importe quel endroit du présent répertoire donné.
Dans le sens, le fichier app.config peut être à l'intérieur d'une sous-directrice d'un répertoire sous-titre inital donné. Basciquement n'importe où à l'intérieur du sous-répertoire donné P>
est là que je peux implémenter ce comportement? p>
private void ValidateFiles(string path) { string[] filesindirectory = Directory.GetDirectories(path); foreach (var subDir in filesindirectory) { string pathToConfigFile = Path.Combine(subDir, "app.config"); if (File.Exists(pathToConfigFile)) { } else { } } }
3 Réponses :
Vous pouvez utiliser la méthode dans la variable des fichiersInindirectory, vous aurez maintenant tous les noms de fichier (qui est app.config dans notre cas) avec le chemin. répertoire.getfiles code> pour trouver votre fichier à l'intérieur d'un dossier et dans le paramètre
SearchOption code> Passez le paramètre
SearchOption.Alldirecties code> à Recherche dans tous les sous-répertoires.
Voici l'échantillon de code pour référence:
Pour plus de référence: Microsoft Doc p> p>
De cette réponse, je peux obtenir tous les chemins des dossiers existants qui ont le fichier, y a-t-il un moyen de mettre en œuvre de telle sorte que je puisse mettre en œuvre afin que les noms de tous les annuaires qui n'ont pas de fichier de configuration ne peuvent pas être imprimés.
Processus de vide statique privé (chemin de chaîne) {var filtresInindirectory = nouvelle liste
var LstfileDirectory = Directory.GetFiles(path, "app.config", SearchOption.AllDirectories) .ToList(); LstfileDirectory.ForEach(Item => Console.WriteLine(Item));
Utilisez Récursion pour rechercher tous les sous-répertoires
Je pense que ce que vous cherchez est un moyen de faire ierrer à travers un arbre de répertoire. Voir ce lien docs.microsoft.com/en-us/dotnet/cshaarp/programming-Guide/...