JAVA輸出指定目錄下的子目錄和子檔案

來源:互聯網
上載者:User

標籤:

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

  邏輯:

  •   先判斷給定的是不是一個合法的目錄,如果不是,則提示給定錯誤
  •   如果是目錄,那麼使用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                }            }        }    }}

結果為:

JAVA輸出指定目錄下的子目錄和子檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.