ホームページ > バックエンド開発 > C++ > 「Directory.GetFiles」使用時の「UnauthorizedAccessException」エラーを処理する方法?

「Directory.GetFiles」使用時の「UnauthorizedAccessException」エラーを処理する方法?

Mary-Kate Olsen
リリース: 2025-01-07 15:21:44
オリジナル
874 人が閲覧しました

How to Handle `UnauthorizedAccessException` Errors When Using `Directory.GetFiles`?

スローされた Directory.GetFiles例外UnauthorizedAccessExceptionを解決します

を使用してファイル パスを取得する場合、プログラムに指定されたディレクトリ内の特定のフォルダーへのアクセス権がない場合、Directory.GetFiles 例外が発生する可能性があります。この例外は、メソッドがアクセスできないフォルダーにアクセスしようとした後に発生し、操作が途中で終了します。 UnauthorizedAccessException

この問題を解決するには、ディレクトリ ツリー全体に一度にアクセスするのではなく、反復的なアプローチを使用することをお勧めします。次のコード例は、ディレクトリを安全に調査してファイルを収集する方法を示しています。

ディレクトリを 1 つずつ調査することで、特定のフォルダーへのアクセスが拒否された場合に操作全体が終了することを回避できます。これにより、プログラムはアクセス権のあるディレクトリ内のファイルの処理を続行できるようになります。 このメソッドは、元の例よりも
<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 ex)
    {
        // 以优雅的方式处理访问被拒绝的异常。
        // 可以记录问题或继续处理下一个目录。
        // 例如:Console.WriteLine($"Access denied to directory: {path}, Exception: {ex.Message}");
    }
}</code>
ログイン後にコピー
の結果をより明確に処理し、不必要な

および Directory.GetFiles 呼び出しを回避し、コードの効率と読みやすさを向上させます。 ToList()

以上が「Directory.GetFiles」使用時の「UnauthorizedAccessException」エラーを処理する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート