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

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