だらだらやるよ。

こげつのIT技術メモ

複雑なパターンでのファイル名検索

複雑。とは言っても拡張子がhtmlとphpだけ探したい。とかそういうの。
C#だと、Directory.GetFilesメソッドとか使うんですが。
これだと探索パターンが限られてしまうんですよね。
具体的に言うと、ワイルドカードが、*(任意ゼロ文字以上)と?(任意1文字)しか使えない。
ので、*.htmlと*.phpを検索したい場合2回実行する必要が出てきます。
こりゃいかん、というわけで調べてみると以下の記事を発見。
ある文字列を含むすべてのファイルを検索する - .NET Tips (VB.NET,C#...)
この記事ではGREPのサンプルなのですが、探してみると
Microsoft.VisualBasic.FileIO.FileSystem.GetFiles
というメソッドを発見。
このメソッドだと、条件を複数個渡すことができて便利そうです。


ただここでちょっと問題が。。。
実行してみると明らかに遅いのです。
実装がどうなっているのか知りませんが、Directory.GetFilesで全部のファイルを取得した後に
自分でループさせてマッチングさせたほうが早いという結果になってしまいました。。。か、かなしい!!