Maison > développement back-end > C++ > Comment gérer l'exception UnauthorizedAccessException lors de l'utilisation de Directory.GetFiles() ?

Comment gérer l'exception UnauthorizedAccessException lors de l'utilisation de Directory.GetFiles() ?

Patricia Arquette
Libérer: 2025-01-07 15:02:40
original
643 Les gens l'ont consulté

How to Handle UnauthorizedAccessException When Using 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)
    }
}
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal