(轉(zhuǎn)自:http://blog.csdn.net/gangwazi0525/article/details/7569701)
1 import java.io.File; 2 3 public class ReadDirectory { 4 // 文件所在的層數(shù) 5 PRivate int fileLevel; 6 7 /** 8 * 生成輸出格式 9 * @param name 輸出的文件名或目錄名10 * @param level 輸出的文件名或者目錄名所在的層次11 * @return 輸出的字符串12 */13 public String createPrintStr(String name, int level) {14 // 輸出的前綴15 String printStr = "";16 // 按層次進(jìn)行縮進(jìn)17 for (int i = 0; i < level; i ++) {18 printStr = printStr + " ";19 }20 printStr = printStr + "- " + name;21 return printStr;22 }23 24 /**25 * 輸出初始給定的目錄26 * @param dirPath 給定的目錄27 */28 public void printDir(String dirPath){29 // 將給定的目錄進(jìn)行分割30 String[] dirNameList = dirPath.split("http:////");31 // 設(shè)定文件level的base32 fileLevel = dirNameList.length;33 // 按格式輸出34 for (int i = 0; i < dirNameList.length; i ++) {35 System.out.println(createPrintStr(dirNameList[i], i));36 }37 }38 39 /**40 * 輸出給定目錄下的文件,包括子目錄中的文件41 * @param dirPath 給定的目錄42 */43 public void readFile(String dirPath) {44 // 建立當(dāng)前目錄中文件的File對(duì)象45 File file = new File(dirPath);46 // 取得代表目錄中所有文件的File對(duì)象數(shù)組47 File[] list = file.listFiles();48 // 遍歷file數(shù)組49 for (int i = 0; i < list.length; i++) {50 if (list.isDirectory()) {51 System.out.println(createPrintStr(list.getName(), fileLevel));52 fileLevel ++;53 // 遞歸子目錄54 readFile(list.getPath());55 fileLevel --;56 } else {57 System.out.println(createPrintStr(list.getName(), fileLevel));58 }59 }60 }61 62 public static void main(String[] args) {63 ReadDirectory rd = new ReadDirectory();64 String dirPath = "D://有道詞典";65 rd.printDir(dirPath);66 rd.readFile(dirPath);67 }68 }輸出結(jié)果如下:

新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注