Java FilenameFilterインタフェースを使ってファイル・サブディレクトリの一覧を取得する




WindowsのDIRコマンドやLinuxのlsコマンドのように、指定したディレクトリ(フォルダ)にあるディレクトリ、ファイルを知りたい場合があります。
今回は、Javaでディレクトリの一覧を取得します。

ディレクトリ(フォルダ)のファイル・サブディレクトリを取得するサンプル

指定したディレクトリ(c:\test\work)の直下にある、ディレクトリやファイルのリストを取得します。
(全てのディレクトリ・ファイルのリストと、ディレクトリ名またはファイル名に「a」を含むリストを取得)
また、取得した結果を標準出力します。

実行結果

取得されたファイル名・ディレクトリ名の一覧が標準出力されます。
リスト1:指定したディレクトリにある、ディレクトリおよびファイルの一覧
リスト2:指定したディレクトリにある、ディレクトリ名またはファイル名に「a」を含む一覧

サンプルの解説

File#list()を使うことで、指定したディレクトリの一覧を取得することができます。
また、ディレクトリ名、ファイル名に特定の文字を含む一覧を抽出するためには、FilenameFilterインタフェースを渡すことによって、取得することができます。
FilenameFilterは、シンプルな構造で、FilenameFilter#accept(File,String)を実装するだけです♪
このメソッドの返値がtrueのものが抽出対象になります。