@author:肖佳嘉
@Date:April 30, 2019
package File_Statistics;
import java.io.File;
/**
* 需求:4,从键盘接收一个文件夹路径,把文件夹中的所有文件以及文件夹的名字按层级打印, 例如:
* 把文件夹中的所有文件以及文件夹的名字按层级打印
* 分析:
* 1,获取所有文件和文件夹,返回的File数组
* 2,遍历数组
* 3,无论是文件还是文件夹,都需要直接打印
* 4,如果是文件夹,递归调用
*
*/
public class File04_PrintLev {
public static void main(String[] args) {
//1,获取路径
File Route = File01_statistics.GetDir();
//2.获取所有文件和文件夹,返回的File数组
//参数0是后面递归实现层级缩进使用
printlev(Route , 0);
}
public static void printlev(File Route , int lev) {
//获取路径下所有的文件夹和问价放到数组中
File [] filearr = Route.listFiles();
//3.遍历数组
for (File file : filearr) {
//目的是实现层级打印的缩进
for(int i = 0 ; i<lev ; i++) {
System.out.print(" ");
}
//无论是文件夹还是文件,先直接打印
System.out.println(file);
//如果是文件夹,就进行一次递归
if(file.isDirectory()) {
printlev(file,++lev);
}
}
}
}
测试结果:
请输入一个文件夹路径
G:\肖佳嘉\班务
G:\肖佳嘉\班务\班务工作
G:\肖佳嘉\班务\班务工作\2018年xxx校运会羽毛球比赛竞赛规程.doc
G:\肖佳嘉\班务\班务工作\xx届校运会羽毛球比赛计算机xxx名单.xlsx
G:\肖佳嘉\班务\班务工作\xxx.xlsx
G:\肖佳嘉\班务\班务工作\校运会报名表.xlsx
G:\肖佳嘉\班务\班务工作\核对个人信息
G:\肖佳嘉\班务\班务工作\核对个人信息\1.jpg
G:\肖佳嘉\班务\班务工作\核对个人信息\2.jpg
G:\肖佳嘉\班务\班务工作\核对个人信息\3.jpg
G:\肖佳嘉\班务\班务工作\核对个人信息\新建文本文档.txt
G:\肖佳嘉\班务\班务工作\第xx届校运会竞赛规则.docx
G:\肖佳嘉\班务\班务工作\计算机xxx.xlsx
G:\肖佳嘉\班务\班务工作\计算机xxx校运会报名名单.xlsx
G:\肖佳嘉\班务\评选优秀学生干部
G:\肖佳嘉\班务\评选优秀学生干部\xxxx学年度校级机构优秀学生干部评选附件.rar
G:\肖佳嘉\班务\评选优秀学生干部\关于申报评选xxxx学年度校级优秀学生干部的通知.docx
G:\肖佳嘉\班务\评选优秀学生干部\xx52号 关于印发《xxxx学生综合测评规定》等3个文件的通知.pdf
G:\肖佳嘉\班务\评选优秀学生干部\校级优秀学生干部评选材料收集细则.docx