求指教,多处看不懂,最好能全部注释,谢谢!!

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);

        }
    }
}

}

图片说明

详情看图片,比较清楚