递归:函数自身调用函数自身使用递归的前提是要有条件结束这个自身调用(不然会出现死循环)
public class Demo1 { public static void main(String[] args) { File file = new File("D:\\新建文件夹"); System.out.println(print1(5)); print2(file,""); myDelete(file); } //计算出5的阶层(5*4*3*2*1) public static int print1(int num) { if(num==1) { return 1; }else { return num*print1(num-1); } } //打印文件夹的路径 public static void print2(File file,String str) { //根据传入的路径获取所有文件 File[] allFile = file.listFiles(); //根据是文件夹还是文件不同的处理 for (File itemp : allFile) { if(itemp.isFile()) { System.out.println(str+itemp.getName()); }else if(itemp.isDirectory()) { System.out.println(str+itemp.getName()); print2(itemp,"--"+str); } } } //因为delete只能删除一个空的文件夹,所以我们可以根据递归删除所有文件 public static void myDelete(File file) { //根据传入的路径获取所有文件 File[] allFile = file.listFiles(); //根据是文件夹还是文件不同的处理 for (File itemp : allFile) { if(itemp.isFile()) { itemp.delete(); }else if(itemp.isDirectory()) { myDelete(itemp); } file.delete(); } }}