ホームページ > バックエンド開発 > C++ > Directory.GetFiles() を使用するときに UnauthorizedAccessException を処理する方法は?

Directory.GetFiles() を使用するときに UnauthorizedAccessException を処理する方法は?

Patricia Arquette
リリース: 2025-01-07 15:02:40
オリジナル
559 人が閲覧しました

How to Handle UnauthorizedAccessException When Using Directory.GetFiles()?

Directory.GetFiles での不正アクセス例外の克服

Directory.GetFiles() を使用してディレクトリ ツリー内のファイルを再帰的に検索すると、プログラムが十分なアクセス許可なしでフォルダーにアクセスしようとすると、UnauthorizedAccessException が発生する可能性があります。この例外により、操作が途中で中止されます。

この問題を回避するには、各ディレクトリを個別に調査する、より制御されたアプローチを採用することをお勧めします。以下のコードは、この手法を示しています。

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)
    }
}
ログイン後にコピー

このアプローチでは、AddFiles() はパス内のすべてのファイルとサブディレクトリを反復処理します。アクセスできないディレクトリが見つかった場合は、それをスキップして残りのディレクトリを続行します。そうすることで、プログラムは認証の問題により突然終了することなくファイル検索を続行できます。

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

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