Maison >développement back-end >C++ >Comment puis-je répertorier les fichiers de manière récursive tout en ignorant les exceptions d'accès en C# ?
Gestion des exceptions d'accès aux fichiers dans Directory.GetFiles()
Lors de l'utilisation de la méthode Directory.GetFiles()
, vous pouvez rencontrer une situation dans laquelle certains dossiers ou fichiers du chemin de répertoire spécifié ne sont pas accessibles, provoquant des exceptions et interrompant le processus de liste des fichiers. Pour surmonter cette limitation et continuer à répertorier les fichiers accessibles tout en ignorant les éléments protégés ou inaccessibles, une approche récursive manuelle est recommandée.
Directory.GetFiles()
prend en charge nativement la récursivité à l'aide du paramètre AllDirectories
. Cependant, cette méthode peut ne pas être fiable si l'accès à certains sous-répertoires est refusé, ce qui entraîne l'arrêt brutal du processus. Pour résoudre ce problème, une approche récursive personnalisée est nécessaire.
L'extrait de code fourni montre comment gérer efficacement les exceptions d'accès tout en répertoriant de manière récursive les fichiers dans un répertoire spécifié. Il introduit une nouvelle méthode ApplyAllFiles()
qui effectue une recherche récursive personnalisée.
Dans ApplyAllFiles()
, le code parcourt chaque fichier du répertoire actuel et appelle le délégué fileAction
fourni pour traiter le fichier. Il répertorie ensuite les sous-répertoires du répertoire actuel et tente d'appliquer la même méthode ApplyAllFiles()
à chaque sous-répertoire.
Si une exception est rencontrée lors de la tentative d'accès à un sous-répertoire, le code avalera silencieusement l'exception, garantissant que le processus continue de répertorier les fichiers accessibles sans interruption.
En adoptant cette approche, les développeurs peuvent répertorier efficacement les fichiers dans un répertoire tout en ignorant les dossiers ou fichiers inaccessibles. Il permet une manipulation plus puissante de la liste de fichiers, en particulier lorsque différents sous-répertoires ont des droits d'accès différents.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!