java 统计某个文件夹下所包含的文件和文件夹的个数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 统计某个文件夹下所包含的文件和文件夹的个数相关的知识,希望对你有一定的参考价值。

static int count =0;
public void refreshFileList(File dir)
int sum=0;
File[] files = dir.listFiles();
for(int i=0;i<files.length;i++)
System.out.println(files[i].getAbsolutePath());
String str = files[i].getAbsoluteFile().toString();
// System.out.println("**********"+str);
countStr(str);
if(files[i].isDirectory())
refreshFileList(files[i]);
sum++;
System.out.println("文件夹的个数为:"+sum);



public static void countStr(String str)
boolean sub =false ;
sub = str.contains(".");
if(sub==true)
count++;
System.out.println("文件的个数为+++:"+count);




上面是我自己写的,输出文件的个数由于是放到for循环里的,有没有更好一点的思路 恳请给些建议

listFiles方法返回当前目录内所有文件和子目录的File对象数组。
获取其大小即文件和子目录的数量总和。

遍历数组,用isDirectory方法检验元素是否为目录,这样就把子目录数出来了。

做差就是文件的数量了。

哦,你是想继续数子目录的文件数量情况吗?那就再最外面套个递归。
参考技术A java中统计文件夹下的文件数和文件夹数可以采用递归遍历的方法。
我提供一个方法输出特定文件夹下面的文件和文件夹数目,如下:
public void getFileAndDirectory(File file)
int countDirctory = 0;

int countFile = 0;
if(file.isDirectory())
File []files = file.listFiles();
for(File fileIndex:files)
if(fileIndex.isDirectory())
countDirectory++;

getFileAndDirectory(fileIndex);

else
countFile++;



System.out.println("目录文件数目为:"+countDirectory);

System.out.println("普通文件数目为:"+countFile);


方法思路就是遍历到一个文件便判断其是否为目录文件,若为目录文件,则调用该方法,同时目录文件数加1,若为普通文件,则普通文件数加1,便可实现上述的要求。
参考技术B 递归和非递归。

以上是关于java 统计某个文件夹下所包含的文件和文件夹的个数的主要内容,如果未能解决你的问题,请参考以下文章

写一个正则,统计出一个文件中某一段文字出现了多少次。

Java课程设计

键盘录入一个文件夹路径,统计该文件夹(包含子文件夹)中每种类型的文件及个数,注意:用文件类型(后缀名,不包含.(点),如:"java","txt")作为key,

java 怎么读取文件中的字符和数据

使用java读取文件夹中文件的行数

matlab从文件夹名中获得该文件夹下所图像文件名