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