<AI>
Java NIOの Files.walkFileTree または Files.walk を利用すると、指定ディレクトリ以下のサブフォルダを再帰的に探索し、
効率よくファイル一覧を取得して画面(JavaFXの ListView など)に表示できます。
以下に Files.walk を使ってファイルパスを取得し、ListView に表示するシンプルで実用的な実装例を記載します。
実装例:指定フォルダ以下のファイルを ListView に表示する
java
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.ListView;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

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

public class FileViewerApp extends Application {

    @Override
    public void start(Stage primaryStage) {
        // 表示したい対象のフォルダパスを指定
        Path rootDir = Paths.get("C:/your/target/directory");

        ListView listView = new ListView<>();
        ObservableList fileList = FXCollections.observableArrayList();

        // Files.walk を使って再帰的にファイルを探索しリストに格納
        try (Stream paths = Files.walk(rootDir)) {
            paths.filter(Files::isRegularFile) // ファイルのみに絞り込む場合
                 .forEach(path -> fileList.add(path.toString()));
        } catch (IOException e) {
            e.printStackTrace();
        }

        listView.setItems(fileList);

        VBox root = new VBox(listView);
        Scene scene = new Scene(root, 400, 300);
        
        primaryStage.setTitle("再帰的ファイルビューア");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

ポイント・解説

Files.walk(): Java 7で導入された高速かつ簡潔にファイルツリーを辿るためのメソッドです。
Stream APIで処理できるため、フィルター条件の追加などが容易に行えます。

リソースの解放: ストリームを開いたままにするとファイルロックなどの原因になるため、try-with-resources 構文で必ず close() されるように記述しています。

フィルター (filter): ディレクトリそのものとファイルの両方が対象となるため、.filter(Files::isRegularFile) を追加してファイルのみを抽出しています
(フォルダ名も一緒に表示したい場合はこの行を削除してください)。

JavaFXへの適用: 取得したパスの文字列表現(path.toString())を ObservableList に追加し、それを ListView にセットすることで画面に表示します。
また、より複雑な条件や階層ごとの処理を行いたい場合は、Oracleの公式リファレンスである Files.walkFileTree を用いたVisitorパターンの実装が便利です