Java之递归遍历文件目录

匿名 (未验证) 提交于 2019-12-02 21:53:52

levels 记录层数,用于控制深一层文件前的空格数量

public class DirectorList { 	private static Scanner sc;  	public static void main(String[] args) { 		String route = getRoute(); 		File file = new File(normRoute(route)); 		System.out.println(file.getName()); 		showFile(file, 1); 	} 	 	/* 	 * 利用递归遍历所有子目录,levels记录文件夹的层数(控制空格长度,模拟分层效果 ) 	 */ 	public static void showFile(File files,int levels){ 		//获取所有的文件列表 		File[] arrFiles = files.listFiles(); 		String str = ""; 		//每向下延伸一层,文件前增加一层 		for (int i = 0; i < levels; i++) { 			str += "    "; 		} 		//增强for遍历文件数组 		for (File childFile : arrFiles) { 			System.out.println(str + childFile.getName()); 			//如果file是目录,递归调用 			if(childFile.isDirectory()) 				showFile(childFile, levels + 1);	 		} 	} 	 	//获取用户输入文件路径 	public static String getRoute(){ 		sc = new Scanner(System.in); 		System.out.println("请输入文件的绝对路径:"); 		String route = sc.next(); 		return route; 	} 	 	//对用户输入的文件路径进行分割重新组装 	public static String normRoute(String str){ 		//定义分割符\ 		String strSplit = "\\\\"; 		String normalSplit = ""; 		String[] arrRoute = str.split(strSplit); 		for (String sonRoute : arrRoute) { 			normalSplit  = normalSplit + sonRoute + "\\\\"; 		} 		return normalSplit; 	} }  console: 请输入文件的绝对路径: D:\foxmail\Global Global     7_1.ver     Address         3.0             1                 AddrFolderTreeStg.hea                 AddrFolderTreeStg.htb                 AddrFolderTreeStg.rec0                 AddrNoteIdToEmails                 AddrNoteIdToMainEmailId                 Indexes                     hitCount.ind             AddressOption         Images             contact.png     alarm 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!