Use JGit TreeWalk to list files and folders

前端 未结 2 1499
野的像风
野的像风 2021-02-19 04:25

I\'d like to use JGit to display a list of all files and folders for the head revision. I\'m able to list all files using TreeWalk, but this does not list folders.

Here

相关标签:
2条回答
  • 2021-02-19 04:58

    You need to set recursive to false (see documentation) and then walk like this:

    TreeWalk treeWalk = new TreeWalk(repository);
    treeWalk.addTree(tree);
    treeWalk.setRecursive(false);
    while (treeWalk.next()) {
        if (treeWalk.isSubtree()) {
            System.out.println("dir: " + treeWalk.getPathString());
            treeWalk.enterSubtree();
        } else {
            System.out.println("file: " + treeWalk.getPathString());
        }
    }
    
    0 讨论(0)
  • 2021-02-19 05:05

    Git does not track directories of their own. You can only derive non-empty directory names from the path string you get from the TreeWalk.

    See the Git FAQ (search for 'empty directory') for a detailed explanation and possible workarounds.

    0 讨论(0)
提交回复
热议问题