一道面试题(朋友发的):主要考察点为 递归算法的使用
使用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());
}
}
}