MENU

Java 再帰的にファイルを検索

目次

Java ディレクトリから再帰的にファイルを検索

Java で、指定されたディレクトリから、サブディレクトリも含め再帰的にファイルを検索し、検索条件に該当するファイルリストを取得するサンプルプログラムを紹介します。
これらは UNIX 系コマンドの ls -R 、Windows 系コマンドの dir /s と同等の処理を行います。
また、検索対象のファイル名にはワイルドカード文字として*を指定したり、正規表現を使用して検索する事ができます。

 使い方の例として、以下の場合、ディレクトリ filelist をサブディレクトリを含め再帰的に検索し、拡張子 java のファイルリストを取得します。

FileSearch search = new FileSearch();
File[] files = search.listFiles(“C:/filelist/”, “*.java”);


サンプルプログラム

実行結果

 サンプルプログラムを確認するために、filelist ディレクトリを作成し以下のファイルを用意しました。

ファイル名と更新日付が表示されています。

※尚、現在の日付は2007/08/18だとします。

C:\filelist
    │  aaa.java      2007/08/18
    │  bbb.java      2007/08/18
    └─dir
           ccc.java   2007/07/17
           ddd.java   2007/08/18
           eee.jpg    2007/08/16

◆実行例


◆出力結果

●全てのファイルを取得
1:	C:\filelist\aaa.java
2:	C:\filelist\bbb.java
3:	C:\filelist\dir\ccc.java
4:	C:\filelist\dir\ddd.java
5:	C:\filelist\dir\eee.jpg

●拡張子javaのファイルを取得
1:	C:\filelist\aaa.java
2:	C:\filelist\bbb.java
3:	C:\filelist\dir\ccc.java
4:	C:\filelist\dir\ddd.java

●全てのファイルとディレクトリを取得
1:	C:\filelist\aaa.java
2:	C:\filelist\bbb.java
3:	C:\filelist\dir
4:	C:\filelist\dir\ccc.java
5:	C:\filelist\dir\ddd.java
6:	C:\filelist\dir\eee.jpg

●現在の日付から、2日前以降に更新されたファイルを取得
1:	C:\filelist\aaa.java
2:	C:\filelist\bbb.java
3:	C:\filelist\dir\ddd.java
4:	C:\filelist\dir\eee.jpg

●現在の日付から、30日以前の古いファイルを取得
1:	C:\filelist\dir\ccc.java
  • URLをコピーしました!
目次