ホームページ > バックエンド開発 > C++ > C#のアクセス例外を無視しながら、ファイルを再帰的にリストするにはどうすればよいですか?

C#のアクセス例外を無視しながら、ファイルを再帰的にリストするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-27 23:21:10
オリジナル
173 人が閲覧しました

How Can I Recursively List Files While Ignoring Access Exceptions in C#?

Directory.GetFiles() でのファイル アクセス例外の処理

Directory.GetFiles() メソッドを使用すると、指定されたディレクトリ パス内の特定のフォルダーまたはファイルにアクセスできなくなり、例外が発生し、ファイル一覧表示プロセスが中断される場合があります。この制限を克服し、保護されたアイテムやアクセスできないアイテムを無視しながらアクセス可能なファイルのリストを継続するには、手動の再帰的アプローチをお勧めします。

Directory.GetFiles() メソッドは、AllDirectories パラメーターを使用した再帰をネイティブにサポートします。ただし、特定のサブディレクトリへのアクセスが拒否された場合、このメソッドは信頼性が低くなり、プロセスが突然終了する可能性があります。この問題を解決するには、カスタムの再帰的アプローチが必要です。

提供されたコード スニペットは、指定されたディレクトリ内のファイルを再帰的にリストする際に、アクセス例外を適切に処理する方法を示しています。カスタムの再帰検索を実行する新しいメソッド ApplyAllFiles() が導入されています。

ApplyAllFiles() では、コードは現在のディレクトリ内の各ファイルを反復処理し、提供された fileAction デリゲートを呼び出してファイルを処理します。次に、現在のディレクトリ内のサブディレクトリを一覧表示し、同じ ApplyAllFiles() メソッドを各サブディレクトリに適用しようとします。

サブディレクトリへのアクセス中に例外が発生した場合、コードはその例外を黙って飲み込み、プロセスが中断することなくアクセス可能なファイルのリストを続行することを保証します。

このアプローチを採用することで、開発者は、アクセスできないフォルダーやファイルを無視しながら、ディレクトリ内のファイルを効率的に一覧表示できます。これにより、特にサブディレクトリごとに異なるアクセス権がある場合に、より強力なファイル リスト操作が可能になります。

以上がC#のアクセス例外を無視しながら、ファイルを再帰的にリストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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