ホームページ >バックエンド開発 >C++ >directory.getFiles()またはenumerateFiles()を使用して複数のファイルタイプを取得するにはどうすればよいですか?

directory.getFiles()またはenumerateFiles()を使用して複数のファイルタイプを取得するにはどうすればよいですか?

DDD
DDDオリジナル
2025-01-26 19:21:10628ブラウズ

How Can I Retrieve Multiple File Types Using Directory.GetFiles() or EnumerateFiles()?

複数の種類のファイルを効率的に取得する

Directory.GetFiles() メソッドは簡単そうに見えますが、複数のファイル タイプのフィルターを直接サポートしていません。 ただし、この制限を克服するための効果的な戦略がいくつか存在します。

.NET 4.0 以降のバージョンの場合、EnumerateFiles() メソッドは、LINQ の Where() 句を使用した優れたソリューションを提供します。

<code class="language-csharp">var files = Directory.EnumerateFiles("C:\path", "*.*", SearchOption.AllDirectories)
            .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>

これにより、指定された拡張子に基づいて列挙されたファイルがエレガントにフィルタリングされます。

古い .NET バージョンの場合は、同等のアプローチが可能です。

<code class="language-csharp">var files = Directory.GetFiles("C:\path", "*.*", SearchOption.AllDirectories)
            .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>

ただし、GetFiles() はメモリ内の完全な配列を返すことを覚えておくことが重要です。 これは、特に大規模なディレクトリを処理する場合に、パフォーマンスの問題やメモリ消費量の増加につながる可能性があります。 したがって、効率を最適化するには、EnumerateFiles() を使用することを強くお勧めします。

以上がdirectory.getFiles()またはenumerateFiles()を使用して複数のファイルタイプを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。