Надо искать в файловой системе файлы с определенном расширением и выводить в виде дерева каталог в котором эти файлы есть. Код для того что бы выводить весь каталог не составило никакого труда, вопрос в том как адаптировать его к поставленной задаче?
Кнопка, осуществляющая поиск
@FXML
public void findInDirectory(){
DirectoryChooser directoryChooser = new DirectoryChooser();
directoryChooser.setInitialDirectory(new File(System.getProperty("user.home")));
File choice = directoryChooser.showDialog(primaryStage);
if(choice == null || ! choice.isDirectory()) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setHeaderText("Could not open directory");
alert.setContentText("The file is invalid.");
alert.showAndWait();
} else {
treeView.setRoot(getNodesForDirectory(choice));
}
}
Построение дерева
public TreeItem<String> getNodesForDirectory(File directory) {
TreeItem<String> root = new TreeItem<>(directory.getName());
for(File f : directory.listFiles()) {
System.out.println("Loading " + f.getName());
if(f.isDirectory()) {
root.getChildren().add(getNodesForDirectory(f));
} else {
root.getChildren().add(new TreeItem<>(f.getName()));
}
}
return root;
}