您好,登錄后才能下訂單哦!
一、實現效果
需求:從鍵盤接收一個文件夾路徑,把文件夾中的所有文件以及文件夾的名字按層級打印。
例如:把文件夾中的所有文件以及文件夾的名字按層級打印。
二、實現邏輯
獲取所有文件和文件夾,返回File數組,遍歷數組,無論是文件還是文件夾都需要直接打印,如果是文件夾,遞歸調用。
三、實現代碼
aaa是文件夾,里面有bbb.txt、ccc.txt、ddd.txt這些文件,有eee這樣的文件夾,eee中有fff.txt和ggg.txt,打印出層級來。
例如:
代碼如下:
public class Test4 { public static void main(String[] args) { File dir = getDir(); //獲取文件夾路徑 printLev(dir,0); } /* * 從鍵盤接收一個文件夾路徑 * 1,返回值類型File * 2,參數列表無 */ public static File getDir() { //1,創建鍵盤錄入對象 Scanner sc = new Scanner(System.in); System.out.println("請輸入一個文件夾路徑:"); //2,定義一個無限循環 while(true) { //3,將鍵盤錄入的結果存儲并封裝成File對象 String line = sc.nextLine(); File dir = new File(line); //4,對File對象判斷 if(!dir.exists()) { System.out.println("您錄入的文件夾路徑不存在,請輸入一個文件夾路徑:"); }else if(dir.isFile()) { System.out.println("您錄入的是文件路徑,請輸入一個文件夾路徑:"); }else { //5,將文件夾路徑對象返回 return dir; } } } public static void printLev(File dir,int lev) { //1,把文件夾中的所有文件以及文件夾的名字按層級打印 File[] subFiles = dir.listFiles(); //2,遍歷數組 for (File subFile : subFiles) { for(int i = 0; i <= lev; i++) { System.out.print("\t"); } //3,無論是文件還是文件夾,都需要直接打印 System.out.println(subFile); //4,如果是文件夾,遞歸調用 if(subFile.isDirectory()) { //printLev(subFile,lev + 1); printLev(subFile,++lev); } } } }
以上就是java實現從鍵盤接收文件路徑,層級打印文件或文件夾名字的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。