c#でフォルダ内のファイル名(一部でも可)を検索し、その一覧を取得する
C#なら簡単にできるだろうと思いGoogle先生に聞いたところ意外にない。。。
いや、あるのですがめんどくさい方法ばかり。
仕様がないのでMSDNさんを調べてると・・・ありました。
やっぱり簡単にできますね。
Directory.GetFiles メソッド
引数に、
String
String, String
String, String, SearchOption
GetFiles(String)は、いろいろなサイトで説明されていましたが、
GetFiles(String, String)とGetFiles(String, String, SearchOption)の説明をしているサイトはあまりありませんでした。
ということで、メモ程度に
GetFiles(String, String)とGetFiles(String, String, SearchOption)は基本的に同じ
3つ目の引数があるのとないの
引数2つのものはSearchOptionの引数が省略されていると考えていいと思います。
SearchOptionはサブディレクト内の検索をするかどうかというフラグ
引数2つのものは、サブディレクト内も検索します。
SearchOptionは
SearchOption.TopDirectoryOnly
と
SearchOption.AllDirectories
のふたつがあります。
SearchOption.AllDirectoriesを引数に渡すとサブディレクト内も検索をします。
そして、1つ目の引数のStringは、
検索するディレクトリのパス
2つ目の引数のStringは
検索対象文字列です。
検索対象文字列は
"*.png"
って感じで指定すると前に0文字以上の文字列と".png"が含まれるファイルを検索しろ!って意味合いになります
詳しくはこちらをご覧ください
ちなみに今回使用したメソッドはファイルを検索するものでしたが
フォルダを検索するGetDirectoriesメソッド
ファイル、フォルダともに検索するEnumerateFilesメソッド
があります。