Hatena::Groupprogram

ひとり開発日記。 このページをアンテナに追加 RSSフィード

2013/10/10 (Thu)

特定のディレクトリ配下にある、特定の拡張子を持つファイルを再帰的に全て取りたい

| 特定のディレクトリ配下にある、特定の拡張子を持つファイルを再帰的に全て取りたい - ひとり開発日記。 を含むブックマーク はてなブックマーク - 特定のディレクトリ配下にある、特定の拡張子を持つファイルを再帰的に全て取りたい - ひとり開発日記。

そういう時、Files#walkFileTreeを使えば良いのでしょうが、visitorパターン*1のための、クラスをわざわざ作らなければいけないので、ちょっと面倒臭い…。

Commons IOのFileUtilsを使えば、もうちょっと楽っぽい。

File directory = new File("/work/records/");
String[] extensions = new String[] { "pdf", "PDF" };
Collection<File> files = FileUtils.listFiles(directory, extensions, true);

こんな感じで書くと、"*.pdf"/"*.PDF"なファイルが、Collectionで返ってくる、と。*2

*1http://ja.wikipedia.org/wiki/Visitor_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3

*2:第三引数をtrueに設定すると、再帰的に検索する

トラックバック - http://program.g.hatena.ne.jp/halflite/20131010