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循环里的,有没有更好一点的思路 恳请给些建议 展开
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循环里的,有没有更好一点的思路 恳请给些建议 展开
3个回答
展开全部
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,便可实现上述的要求。
我提供一个方法输出特定文件夹下面的文件和文件夹数目,如下:
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
展开全部
递归和非递归。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询