File类综合——Java实现文件夹路径名称层级打印

@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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章