Перечислите все файлы, папки и вложенные каталоги с помощью дерева tomahawk

#recursion #tree #tomahawk

#рекурсия #дерево #tomahawk

Вопрос:

Я использовал tomahawk (1.1.11) для одного проекта. Я хочу отобразить дерево со всеми файлами и вложенными каталогами (и файлами в этих вложенных каталогах). У меня есть код, но в нем перечислены не все файлы и каталоги, и я не знаю, где ошибка.

 public TreeNode getTreeData() {
    path = loadConfiguredPath();
    String dependencia = userVerifier.getDependencia();

    if (dependencia.equals("TEST")) {
        path = path   "dataFiles";
    } else {
        path = path   "dataFiles\"   dependencia;
    }

    dirRoot = new File(path);
    treeRoot = new TreeNodeBase("folder", "BASEDIR", false);
    createTree(dirRoot, treeRoot);

    return treeRoot;
}

private void createTree(File fileRoot, TreeNode treeRoot) {
    File[] files = fileRoot.listFiles();
    TreeNodeBase tnb;
    for (File f : files) {
        if (f.isDirectory()) {
            tnb = new TreeNodeBase("folder", f.getName(), false);
            treeRoot.getChildren().add(tnb);
            createTree(f, tnb);
        }
        if (f.isFile()) {
            tnb = new TreeNodeBase("file", f.getName(), false);
            treeRoot.getChildren().add(tnb);
            //return;
        }
    }
    return;
}
  

ОБНОВЛЕНИЕ: код исправлен, как указано в комментарии.

Комментарии:

1. Извините, наконец-то найдена моя ошибка! Я возвращался, когда был найден только один файл. и я просто изменяю этот возврат в конце цикла for. В любом случае спасибо.

Ответ №1:

Извините, наконец-то найдена моя ошибка!

Я возвращался, когда был найден только один файл. и я просто изменяю этот возврат в конце цикла for.

В любом случае спасибо