メソッドを使用して、やDirectory.GetFiles()
などの複数の種類のファイルのリストを取得しようとしています。次の 2 つの方法を試しましたが、うまくいきませんでした。mp3
jpg
Directory.GetFiles("C:\\path", "*.mp3|*.jpg", SearchOption.AllDirectories);
Directory.GetFiles("C:\\path", "*.mp3;*.jpg", SearchOption.AllDirectories);
これを 1 回の通話で実行する方法はありますか?
ベストアンサー1
.NET 4.0以降の場合、
var files = Directory.EnumerateFiles("C:\\path", "*.*", SearchOption.AllDirectories)
.Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));
.NETの以前のバージョンの場合、
var files = Directory.GetFiles("C:\\path", "*.*", SearchOption.AllDirectories)
.Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));
編集: コメントを読んでください。ポール・ファリーメモリ/パフォーマンスの問題は、クリスチャン.K指摘していることはどちらも非常に重要です。