ビジネスチャット、テレビ会議、文書管理、スケジュールを統合。IP Messenger 互換。基本無料!

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

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

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

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

FileSearch search = new FileSearch();
File[] files = search.listFiles(“C:/filelist/”, “*.java”);
 お勧めフリーソフト

当サイトで公開している Chat&Messenger は 10年以上の実績がある基本無料の国産ビジネスチャットツールです。ユーザを自動認識して直ぐにチャット、テレビ会議、スケジュール管理などが無料で利用できます。(Windows / Mac / Android / iOS)

サンプルプログラム


実行結果

 サンプルプログラムを確認するために、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