package com.uniteque;
import java.io.File;
public class TestRecursive {
/**
* @param args
* 递归 思想
*/
public static void main(String[] args) {
showAllFile("D:\\JAVA\\apache-ant-1.8.3\\etc");
}
public static void showAllFile(String filepath){
File file = new File(filepath);
File[] lst = file.listFiles();
for(int i=0; i<lst.length; i++){
if(lst[i].isDirectory()){ //注意只要是目录再次调用showAllFile方法(内部自己行调用) 可以自己断点看一下执行过程
showAllFile(lst[i].getPath()); //内部调用完之后还是会 回到for循环
}else{
System.out.println(lst[i].getPath());
}
}
}
import java.io.File;
public class TestRecursive {
/**
* @param args
* 递归 思想
*/
public static void main(String[] args) {
showAllFile("D:\\JAVA\\apache-ant-1.8.3\\etc");
}
public static void showAllFile(String filepath){
File file = new File(filepath);
File[] lst = file.listFiles();
for(int i=0; i<lst.length; i++){
if(lst[i].isDirectory()){ //注意只要是目录再次调用showAllFile方法(内部自己行调用) 可以自己断点看一下执行过程
showAllFile(lst[i].getPath()); //内部调用完之后还是会 回到for循环
}else{
System.out.println(lst[i].getPath());
}
}
//递归思路:内部调用,把遍历到的目录 就去调用showAllFile方法
//最好自己dug看下,假设lst.length=10 当遍历到i=3 刚好此时是一个目录,就会再次调用showAllFile方法,
//循环不会终止,i=3目录遍历完之后, 会回到最初的for循环,接着从i=4开始遍历
}
}