作者:李永健
撰写时间:2019年 08月05日
开发工具与关键技术:MyEclipse10,java
例子:
import java.io.File;
/**
* 通过递归 和 File类打印目录的所有子目录和子文件
*/
public class FileDemo2 {
public static void main(String[] args) {
//实例化遍历的目录
File file=new File("D:\\JavaCode\\Jian");
//调用下面方法
printDirectory(file,0);
}
public static void printDirectory(File file,int count){
//判断文件是否存在
if (file.exists()) {
//实例化StringBuffer为了追加内容
StringBuffer buffer=new StringBuffer();
if (count!=0) {
buffer.append("|");
}
for (int i = 0; i < count; i++) {
buffer.append("--");
}
//测试此抽象路径名表示的文件是否是一个目录
if (file.isDirectory()) {
//打印目录的名称
System.out.println(buffer.toString()+"["+file.getName()+"]");
//返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件
File[] files=file.listFiles();
//遍历数组
for (File file2 : files) {
//利用递归自己调用自己
printDirectory(file2,count+1);
}
}
else{
//打印文件名称
System.out.println(buffer.toString()+">"+file.getName());
}
}
}
}
D:\JavaCode\Jian目录中的子目录与文件如下图:
遍历后的结果图:由过于太长截取一部分
首先会把settings目录遍历完再去遍历bin目录,可看–长度知道它们是否在同一个目录下