public class Scaner {
public static void main(String[] args) {
printFiles(new File("../HelloFile"),1);
}
public static void printFiles(File dir,int tab) {
if (dir.isDirectory()) {
File[] next=dir.listFiles();
for (int i = 0; i < next.length; i++) {
for (int j = 0; j < tab; j++) {
System.out.print("|---");
}
System.out.println(next[i].getName());
if (next[i].isDirectory()) {
printFiles(next[i],tab+1);
}
}
}
}
}
用递归的方式遍历文件夹,并且输出文件,类似 treeview,内侧的前面加上|---(tab控制它是第几级)
看不懂的原因不是每行代码注释的问题,而是你对递归程序的执行没有概念。
//主方法
public static void main(String[] args) {
//调用下面的printFiles方法
printFiles(new File("../HelloFile"),1);
}
public static void printFiles(File dir,int tab) {
//判断dir是不是一个文件夹
if (dir.isDirectory()) {
//列出dir下面的所有文件
File[] next=dir.listFiles();
//进行遍历
for (int i = 0; i < next.length; i++) {
//打印tree
for (int j = 0; j < tab; j++) {
System.out.print("|---");
}
//打印文件名
System.out.println(next[i].getName());
//如果该文件是一个文件夹,则递归调用printFiles方法
if (next[i].isDirectory()) {
printFiles(next[i],tab+1);
}
}
}
}
详情看图片,比较清楚