Java: how to get all subdirs recursively?

Posted by HH on Stack Overflow See other posts from Stack Overflow or by HH
Published on 2010-04-05T21:01:12Z Indexed on 2010/04/05 21:03 UTC
Read the original article Hit count: 341

Filed under:
|
|
|

Before debugging the late-hour-out-of-bound-recursive-function: is there a command to get subdirs? giveMeSubDirs(downToPath)?

// WARNING: RECURSION out of bound

public HashSet<FileObject> getAllDirs(String path) {
    HashSet<FileObject> checkedDirs = new HashSet<FileObject>();
    HashSet<FileObject> allDirs = new HashSet<FileObject>();

    String startingPath = path;

    File fileThing = new File(path);
    FileObject fileObject = new FileObject(fileThing);

    for (FileObject dir : getDirsInDir(path)) {

        // SUBDIR

        while ( !checkedDirs.contains(dir) 
                && !(getDirsInDir(dir.getFile().getParent()).size() == 0)) {

            // DO NOT CHECK TOP DIRS if any bottom dir UNCHECKED!

            while ( uncheckedDirsOnLevel(path, checkedDirs).size() > 0) { 

                while (getDirsInDir(path).size() == 0 
                        || (numberOfCheckedDirsOnLevel(path, checkedDirs)==getDirsInDir(path).size())) {
                    allDirs.add(new FileObject(new File(path)));
                    checkedDirs.add(new FileObject(new File(path)));

                    if(traverseDownOneLevel(path) == startingPath )
                        return allDirs;

                    //get nearer to the root
                    path = traverseDownOneLevel(path);
                }
                path = giveAnUncheckedDir(path, checkedDirs);

                if ( path == "NoUnchecked.") {
                    checkedDirs.add(new FileObject( (new File(path)).getParentFile() ));
                    break;
                }
            }
        }
    }
    return allDirs;
}

© Stack Overflow or respective owner

Related posts about java

Related posts about subdirs