获取目录中的文件数量 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
感谢大家的快速回复!
所以,我一直在尝试计算目录中元素的总数。它总是 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
感谢大家的快速回复!