文件夹的结构是一个树形结构,所以遍历一个文件夹和遍历一棵树是差不多的。思路很简单,因为文件夹有很多层所以最明显的就是递归方法去求对于每一子项都是一个相同的操作。以下是我的思路图:
以下是代码,一般人应该都可以看懂
package com.fgh;
import java.io.File;
import java.util.List;
public class FileDemo {
public static void main(String[] args) {
File file=new File("E://hpu");//目标文件或者文件夹
if(file.isAbsolute()){//判断是不是个文件或者文件夹
bianLi(file);
}else{
System.out.println("无效文件");
}
}
public static void bianLi(File file){
if(file.isFile()){//如果是文件,输出文件名
String oldname=file.getName();
System.out.println(oldname);
}else if(file.isDirectory()){//如果是文件夹,输出文件名
System.out.println(file.getName());
File[] files=file.listFiles();//获取他的所有子文件或子文件夹
if(files!=null){//判断他有没有儿子,不为空就是有儿子
for(int index=0;index<files.length;index++){//便利儿子,让再继续执行这个函数
bianLi(files[index]);
}
}
}
}
}