java递归实现文件夹文件的遍历输出

时间:2023-03-09 02:24:08
java递归实现文件夹文件的遍历输出

学习java后对一个面试小题(今年年初在团结湖面试的一个题目) 的习题的编写。

''给你一个文件,判断这个文件是否是目录,是目录则输入当前目录文件的个数和路径,'''
/**
* @author lileilei
*2017年11月30日
*file.java
*/
import java.io.File;
import java.util.LinkedList;
public class fileexit {
public static void findfiles(File file) {
int filenum=0;
int dicetnum=0;
if(file.exists()){
if(file.isFile()){
System.out.println("文件名:"+file+"个数:"+1);
}else if (file.isDirectory()) {
LinkedList<File> list = new LinkedList<File>();
File[] files = file.listFiles();
for(File file2:files){
if (file2.isDirectory()){
String Fdict = file2.getAbsolutePath();
System.out.println("文件夹是:"+file2.getAbsolutePath());
File path=new File(Fdict);
fileexit.findfiles(path);
dicetnum++;
}else{
System.out.println("文件路径:" + file2.getAbsolutePath());
filenum++;
}
}
System.out.println("****************查找结果*******************");
System.out.println("路径是:"+file);
System.out.println("路径:"+file+" 下总共有文件总数量:"+filenum+" 文件夹总数量:"+dicetnum);
}else {
System.out.println("既不是文件也不是文件夹,鬼知道你告诉我的是什么呢?");
}
}else {
System.out.println("你要判断的文件怎么可能是不存在的东西呢!");
}
}
public static void main(String[] args) {
fileexit fil=new fileexit();
File path=new File("C:\\Users\\Administrator\\workspace\\java");
fil.findfiles(path);
}
}