是否可以使用Java获取文件夹中的文件数? 我的问题可能看起来很简单,但我是Java的新领域!
更新
我在评论中看到了这个链接。他们没有解释省略目标文件夹中的子文件夹。 怎么做?如何省略子文件夹并获取指定目录中的文件?
任何建议!!
答案 0 :(得分:9)
纯Java的一种方法是:
int nFiles = new File(filename).listFiles().length;
编辑(问题编辑后):
您可以使用接受FileFilter的listFiles()变体排除文件夹。 FileFilter接受文件。您可以测试该文件是否是目录,如果是,则返回false。
int nFiles = new File(filename).listFiles( new MyFileFilter() ).length;
...
private static class MyFileFilter extends FileFilter {
public boolean accept(File pathname) {
return ! pathname.isDirectory();
}
}
答案 1 :(得分:1)
您需要使用File类。这是一个example。
答案 2 :(得分:0)
此方法允许您计算文件夹内的文件,而不会立即将所有文件加载到内存中(考虑到文件大量可能导致程序崩溃的文件夹,这是很好的),如果你有额外检查文件扩展名等等。将附加条件放在f.isFile()旁边。
import org.apache.commons.io.FileUtils;
private int countFilesInDir(File dir){
int cnt = 0;
if( dir.isDirectory() ){
Iterator it = FileUtils.iterateFiles(dir, null, false);
while(it.hasNext()){
File f = (File) it.next();
if (f.isFile()){ //this line weeds out other directories/folders
cnt++;
}
}
}
return cnt;
}
在这里,您可以下载commons-io库:https://commons.apache.org/proper/commons-io/