JAVA輸出指定目錄下的子目錄和子文件


  題目:給定一個目錄,要求輸出這個目錄下面的子目錄和子文件

  邏輯:

  •   先判斷給定的是不是一個合法的目錄,如果不是,則提示給定錯誤
  •   如果是目錄,那么使用File.listFile()獲得這個目錄下文件名的數組
  •   循環遍歷輸出這個數組元素
  •   輸出名稱之后,接着判斷這個元素是文件還是目錄
  •   如果是目錄,繼續調用本方法來輸出子目錄

代碼如下:

/**
 * 輸出指定目錄下的所有子目錄和子文件
 * 
 * @author LGB
 * 
 */
public class HelloFile {
    public static void main(String[] args) {
        printFile(new File("D:\\test"));
    }

    public static void printFile(File file) {
        if (file.isFile()) {
            System.out.println("您給定的是一個文件"); // 判斷給定目錄是否是一個合法的目錄,如果不是,輸出提示
        } else {
            File[] fileLists = file.listFiles(); // 如果是目錄,獲取該目錄下的內容集合

            for (int i = 0; i < fileLists.length; i++) { // 循環遍歷這個集合內容
                System.out.println(fileLists[i].getName());    //輸出元素名稱
                if (fileLists[i].isDirectory()) {    //判斷元素是不是一個目錄
                    printFile(fileLists[i]);    //如果是目錄,繼續調用本方法來輸出其子目錄
                }
            }
        }
    }
}

 

 執行成功,結果正確,但是樣子太丑陋了,如圖

我們還需要加上縮進改造一下

public class HelloFile {
    public static void main(String[] args) {
        printFile(new File("D:\\test"),1);
    }

    public static void printFile(File file,int tab) {
        if (file.isFile()) {
            System.out.println("您給定的是一個文件"); // 判斷給定目錄是否是一個合法的目錄,如果不是,輸出提示
        } else {
            File[] fileLists = file.listFiles(); // 如果是目錄,獲取該目錄下的內容集合

            for (int i = 0; i < fileLists.length; i++) { // 循環遍歷這個集合內容
                for (int j = 0; j < tab; j++) {        //輸出縮進
                    System.out.print("|---");
                }                
                
                System.out.println(fileLists[i].getName());    //輸出元素名稱                
                
                if (fileLists[i].isDirectory()) {    //判斷元素是不是一個目錄
                    printFile(fileLists[i],tab+1);    //如果是目錄,繼續調用本方法來輸出其子目錄,因為是其子目錄,所以縮進次數 + 1
                }
            }
        }
    }
}

結果為:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM