Maison >développement back-end >C++ >Comment gérer l'exception UnauthorizedAccessException lors de l'utilisation de Directory.GetFiles() ?
Surmonter l'exception d'accès non autorisé dans Directory.GetFiles
Lorsque vous utilisez Directory.GetFiles() pour rechercher de manière récursive des fichiers dans une arborescence de répertoires, il est Il est possible de rencontrer une exception UnauthorizedAccessException lorsque le programme tente d'accéder à un dossier sans autorisations suffisantes. Cette exception abandonne l'opération prématurément.
Pour contourner ce problème, il est recommandé d'adopter une approche plus contrôlée en sondant chaque répertoire individuellement. Le code ci-dessous illustre cette technique :
private static void AddFiles(string path, IList<string> files) { try { Directory.GetFiles(path) .ToList() .ForEach(file => files.Add(file)); Directory.GetDirectories(path) .ToList() .ForEach(dir => AddFiles(dir, files)); } catch (UnauthorizedAccessException ex) { // Handle inaccessible directory (e.g., move on to the next one) } }
Dans cette approche, AddFiles() parcourt tous les fichiers et sous-répertoires du chemin. Lorsqu'il rencontre un répertoire inaccessible, il l'ignore simplement et continue avec les répertoires restants. Ce faisant, le programme peut continuer sa recherche de fichiers sans s'arrêter brusquement en raison d'un problème d'autorisation.
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!