java フォルダ内のファルダやファイルを一覧で取得する

java フォルダ内のファルダやファイルを一覧で取得する

javaで、フォルダ内のファルダやファイルを一覧で取得する手順を記述してます。

環境

  • OS windows11 home
  • java 17.0.2

手順

フォルダ内のファルダやファイルを一覧で取得するには、「Stream」と「Files.list」を使用します。

Stream<Path> stream = Files.list(パス)

以下のフォルダ内のデータを取得してみます。
※「hoge.txt」は隠しファイルになってますが、これも取得されます。

実行してみます。

import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.Files;
import java.io.IOException;
import java.util.stream.Stream;

public class App {
  public static void main(String[] args) throws Exception {

    Path path = Paths.get("C:/java/test/src/");    

    try (Stream<Path> stream = Files.list(path)){
      
      stream.forEach(p -> System.out.println(p.toString()));      

    } catch (IOException e) {

      System.out.println(e);
      
    }
  }
  
}

取得されていることが確認できます。ただし、サブフォルダ内にあるファイルは取得されません。

存在しないファイルを指定

存在しないファイルを指定すると「NoSuchFileException」が発生します。