Maison > développement back-end > C++ > Comment puis-je gérer gracieusement UnauthorizedAccessException lors de l'utilisation de Directory.GetFiles ?

Comment puis-je gérer gracieusement UnauthorizedAccessException lors de l'utilisation de Directory.GetFiles ?

Mary-Kate Olsen
Libérer: 2025-01-07 15:11:45
original
509 Les gens l'ont consulté

How Can I Gracefully Handle UnauthorizedAccessException When Using Directory.GetFiles?

Récupération de fichiers robuste : gestion de l'exception UnauthorizedAccessException dans Directory.GetFiles

Les opérations du système de fichiers rencontrent souvent des problèmes d'autorisation, ce qui entraîne UnauthorizedAccessException lors de l'utilisation de Directory.GetFiles. Cette exception arrête généralement l'ensemble du processus si un seul répertoire inaccessible est rencontré. Une solution plus robuste consiste à vérifier individuellement l'accès au répertoire.

Cette approche améliorée, détaillée ci-dessous, parcourt chaque répertoire, permettant une gestion gracieuse des restrictions d'accès.

Solution de récupération sélective de fichiers

La méthode AddFiles traite les répertoires de manière récursive. Il utilise des expressions lambda pour ajouter des chemins de fichiers à une liste, en ignorant les répertoires à accès restreint.

<code class="language-csharp">private static void AddFiles(string path, IList<string> files)
{
    try
    {
        foreach (string file in Directory.GetFiles(path))
        {
            files.Add(file);
        }

        foreach (string subdirectory in Directory.GetDirectories(path))
        {
            AddFiles(subdirectory, files);
        }
    }
    catch (UnauthorizedAccessException)
    {
        // Ignore access denied errors and continue processing other directories.
    }
}</code>
Copier après la connexion

Cette méthode révisée gère efficacement les UnauthorizedAccessException exceptions au sein d'un bloc try-catch. Le programme continue son exécution, collectant les fichiers des répertoires accessibles sans planter. Cela offre un meilleur contrôle et évite une résiliation prématurée en raison de limitations d'accès. L'utilisation de boucles foreach améliore la lisibilité par rapport à l'approche ToList().ForEach() originale.

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!

source:php.cn
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