Java如何遍历一个目录下的所有的文件(直到根目录)?
大家都知道Java中文件对象的listFiles()的方法只能遍历一个目录下不包括子目录的所有文件。
那么如何深层次遍历一个目录下包括自目录内的所有文件呢?
代码如下:如果用记事本的话文件名改成Demo6.java
import java.io.File;
/**
遍历一个目录下所有的文件(包括根目录的一个程序)
**/
public class Demo6 {
//定义一个文件目录的层级
static int level;
public static void main(String[] args) {
//遍历一个文件目录下的所有的文件直至最里层
File file = new File("D:\\wfx");//在这里更改你要遍历目录的绝对路径
parseFile(file);
}
public static void parseFile(File file){
//每次调用层级加1
level++;
//如果文件为null 或者文件不存在终止遍历
if (file == null || !file.exists()){
return;
}
//获得文件对象的子文件对象列表
File[] files = file.listFiles();
//遍历文件并打印文件名字
for(File f:files){
//层级缩进
for (int i = 0; i < level ; i++) {
System.out.print("\t");
}
String name = f.getName();
System.out.println(name);
//判断这些子文件是否是目录
boolean directory = f.isDirectory();
//如果是目录的话接着遍历
if (directory){
parseFile(f);
}
}
level--;
}
}
如果想看删除该目录下所有文件(清空文件夹)请转链接:Java中删除一个文件夹下的所有文件(包括子目录内的文件)