一道面试题(朋友发的):主要考察点为 递归算法的使用

使用Java代码或伪代码列出一个目录下所有的文件,包括所有子目录下的文件,并分别打印出所有文件和目录的数量


package com.visystem.test;

import org.apache.commons.lang3.RandomUtils;

import java.io.File;

/**
* 递归算法
* @author julong
* @date 2020/4/27 9:51
* @desc
*/
public class Test1 {

public static void main(String[] args) {

File file = new File("D:\\users");
getFile(file);

}

public static void getFile(File file) {
//判断是否为文件夹
if (file.isDirectory()) {
//如果为文件夹获取文件数组
File[] fileArray = file.listFiles();
System.out.println(file.getAbsolutePath() + "文件总数:" + fileArray.length);
for (int i = 0; i < fileArray.length; i++) {
//此处为递归的重点区 通过自己调用自己来进行数据判断
getFile(fileArray[i]);
}
} else {//如果为文件
System.out.println(file.getAbsolutePath());
}
}
}