获取目录中的文件数量 Java

Getting amount of files in a directory Java

所以,我一直在尝试计算目录中元素的总数。它总是 returns 0.

这是我的代码:

public int getElementsInDirectory() {
    Path path = Paths.get(applicationFolder.getAbsolutePath());
    Logger.log("Directory", "Absoloute path: " + path);
    if(path == null) {
        Logger.log("Directory", "Path doesn't exist");
        return 0;
    }
    Paths.get(applicationFolder.getAbsolutePath()).getRoot().forEach(p -> {
        elements++;
    });
    return elements;
}

我已经尝试了几个计算文件的目录,但是,仍然 returns 到 0。

最棒的是,路径也不为空, 因为这是输出

 [2015-07-25, Directory] Created folder!
 [2015-07-25, Directory] Absoloute path: C:\Users\Yasin

所以基本上找到了正确的路径,现在只是元素。

哦对了,差点忘了:

new File(System.getProperty("user.home") + "/");

是应用文件夹

您好,来自 Java 文档,我们看到了这个:

getRoot() Returns the root component of this path as a Path object, or null if this path does not have a root component.

这意味着您的代码肯定不会达到您的预期。 另外我认为这个问题已经在这里问过所以你可以检查这个 thread

由于您使用的是 Java 8,因此您可以替换:

Paths.get(applicationFolder.getAbsolutePath()).getRoot().forEach(p -> {
  elements++;
});

...对于:

Stream.of(applicationFolder.listFiles()).forEach(p -> {
  elements++;
});

我想通了!

一个非常干净和好的方法是这个:

fileField.listFiles().length

感谢大家的快速回复!