文件夹目录中的子文件夹数

Jea*_*aul 1 java directory subdirectory

我有一个文件夹,包含数据文件(.txt等)和子文件夹.

在Java中,如何在任何指定的目录路径中获取子文件夹的数量?

(因此不包括数据文件;仅计算子文件夹)

我已经阅读过有关计算.txt文件数量的文章,但似乎无法找到有关计算子文件夹的任何信息.

我不知道从哪里开始,但是给你一个想法:

String directory = "C:\Users\ . \Desktop\ . \workspace\src\testfolder";
int numberOfSubfolders;

//what is numberOfSubfolders in testfolder?
Run Code Online (Sandbox Code Playgroud)

所有帮助赞赏.

lpi*_*ora 10

您可以使用FileFilter仅列出目录:

File file = new File("/tmp");
File[] files = file.listFiles(new FileFilter() {
    @Override
    public boolean accept(File f) {
        return f.isDirectory();
    }
});
System.out.println("Folders count: " + files.length);
Run Code Online (Sandbox Code Playgroud)

Java File类是复合设计模式的一个示例,因此您必须实际询问实例它是否是文件:isFile()或者它是否是目录isDirectory().

如果你想计算目录,并且你正在使用Java 8. Files.find函数,可以用更简洁的方式(几乎是单行)做同样的事情:

long count = Files.find(
    Paths.get("/tmp"), 
    1,  // how deep do we want to descend
    (path, attributes) -> attributes.isDirectory()
).count() - 1; // '-1' because '/tmp' is also counted in
Run Code Online (Sandbox Code Playgroud)