Как не выводить в TreeView каталог в котором нет необходимого файла?

Надо искать в файловой системе файлы с определенном расширением и выводить в виде дерева каталог в котором эти файлы есть. Код для того что бы выводить весь каталог не составило никакого труда, вопрос в том как адаптировать его к поставленной задаче?

Кнопка, осуществляющая поиск

@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;
    }
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы