@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