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