目指せ非プログラマー

もう何でもごじゃれ言語

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メソッド

があります。