この投稿では、Javaでディレクトリを提供するすべてのサブディレクトリを一覧表示する方法について説明します。

1.使用する File#list() 方法

The File#list() メソッドは、指定されたファイル名フィルターを満たすディレクトリ内のファイルとディレクトリを取得するために使用されます。あなたはオーバーライドすることができます accept() の方法 FilenameFilter 指定されたファイルをファイルリストに含める必要がある場合はtrueを返します。それ以外の場合はfalse。すべてのサブディレクトリを一覧表示するには、ファイルがディレクトリである場合にのみtrueを返します。

コードをダウンロード

 
上記のコードは、以下に示すように、Java8ラムダでさらに短縮できます。

コードをダウンロード

2.使用する File#listFiles() 方法

また、使用することができます File#listFiles() 指定されたファイルフィルターを満たす、指定されたディレクトリ内のファイルとディレクトリのパス名リストを取得するメソッド。あなたはオーバーライドすることができます accept() の方法 FileFilter 指定されたパス名を出力に含める必要があるかどうかをチェックします。

コードをダウンロード

 
上記のコードは、メソッド参照を使用する次のコードと同等です。

コードをダウンロード

3.使用する DirectoryStream

または、 DirectoryStream ある条件を満たすディレクトリ内のファイルを反復処理します。ディレクトリのみをフィルタリングするための簡単な使用例を次に示します。

コードをダウンロード

4.使用する Files.walk() 方法

アクセスするディレクトリレベルの最大数を制限する必要がある場合は、 Files.walk() を返すメソッド Stream<Path>。 JDK1.8以降で使用できます。すべてのレベルを訪問するには、合格することができます Integer.MAX_VALUE 価値。

コードをダウンロード

これで、Javaのディレクトリに存在するすべてのサブディレクトリを一覧表示できます。