File类-递归目录树结构
递归结构包括两部分:
1、定义递归头:什么时候不调用自身方法也就是递归结束的条件,没有递归头。
2、递归体:什么时候调用自身方法。
************************************************************************************************************
练习递归算法计算10!:
public static void main(String[] args){
System.out.println(printRecursion(10));
}
static int printRecursion(int n){
if(n==1) {
return 1;
}else {
return (n*printRecursion(n-1)); //n!=n*(n-1)!
}
}
************************************************************************************************************
************************************************************************************************************
使用递归算法,打印树状结构目录树:
使用:file.listFiles() //返回该目录下所有子目录和子文件
代码练习:
public static void main(String[] args) throws IOException {
File f = new File("C:\\Users\\lenovo\\Desktop\\qq"); //确定qq目录位置
printFile(f,0);
}
static void printFile(File file,int level) {
//输出层数
for (int i = 0; i < level; i++) {
System.out.print("-");
}
System.out.println(file.getName()); //打印文件名称
if(file.isDirectory()) {
File[] files = file.listFiles(); //file.listFiles() //返回该目录下所有子目录和子文件
for(File temp:files) { //遍历该文件所有子目录和子文件并打印
printFile(temp,level+1); //将该目录下所有子目录和子文件在此调用并且层数+1
}
}
}
运行结果:
************************************************************************************************************