特定の検索パターン (*.txt など) を使用して、ディレクトリから再帰的にファイルを列挙できるようにしたいと考えています。ただし、いくつかの制約があります。
- メカニズムは非常に効率的でなければなりません。目標は、(IEnumerable を使用して) ファイルを 1 つずつ列挙することです。そのため、ファイルのリストが膨大な場合でも、1 つのファイルを処理するのに永遠にかかることはありません。
- 列挙はファイルをランダムに返す必要があるため、プログラムの 2 つのインスタンスがディレクトリを列挙しようとしても、両方が同じ順序でファイルを表示することはありません。
要件を考えると、DirectoryInfo.EnumerateFilesは有望に見えますが、2 番目の要件を満たしていません。パフォーマンスに関する考慮事項を取り除けば、ソリューションは簡単です (コレクション全体を取得し、アクセスする前にシーケンスをランダム化するだけです)。
誰かが .net 3.5/4.0 での C# 実装の可能な選択肢を提案できますか?