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

staticintcount=0;publicvoidrefreshFileList(Filedir){intsum=0;File[]files=dir.listFile... 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循环里的,有没有更好一点的思路 恳请给些建议
展开
 我来答
23746021
推荐于2017-10-06 · TA获得超过1467个赞
知道小有建树答主
回答量:384
采纳率:0%
帮助的人:396万
展开全部
listFiles方法返回当前目录内所有文件和子目录的File对象数组。
获取其大小即文件和子目录的数量总和。

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

做差就是文件的数量了。

哦,你是想继续数子目录的文件数量情况吗?那就再最外面套个递归。
随风的鱼儿漂流
推荐于2017-09-14 · TA获得超过617个赞
知道小有建树答主
回答量:123
采纳率:75%
帮助的人:58万
展开全部
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,便可实现上述的要求。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-11-13
展开全部
递归和非递归。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式