溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java如何實(shí)現(xiàn)從鍵盤接收文件夾路徑并按層級(jí)打印

發(fā)布時(shí)間:2020-06-21 21:08:26 來源:億速云 閱讀:377 作者:鴿子 欄目:編程語言

一、實(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í)來。

例如:

java如何實(shí)現(xiàn)從鍵盤接收文件夾路徑并按層級(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)文章!

向AI問一下細(xì)節(jié)

免責(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)容。

AI