Java遍歷輸入指定目次、樹形構造一切文件包含子目次下的文件。本站提示廣大學習愛好者:(Java遍歷輸入指定目次、樹形構造一切文件包含子目次下的文件)文章只能為提供參考,不一定能成為您想要的結果。以下是Java遍歷輸入指定目次、樹形構造一切文件包含子目次下的文件正文
上面經由過程一段代碼引見下Java輸入指定目次、樹形構造下的一切文件包含子目次中的文件的辦法,並附有用果圖。
import java.io.File;
public class ReadDirectory {
// 文件地點的層數
private int fileLevel;
/**
* 生成輸入格局
* @param name 輸入的文件名或目次名
* @param level 輸入的文件名或許目次名地點的條理
* @return 輸入的字符串
*/
public String createPrintStr(String name, int level) {
// 輸入的前綴
String printStr = "";
// 按條理停止縮進
for (int i = ; i < level; i ++) {
printStr = printStr + " ";
}
printStr = printStr + "- " + name;
return printStr;
}
/**
* 輸入初始給定的目次
* @param dirPath 給定的目次
*/
public void printDir(String dirPath){
// 將給定的目次停止朋分
String[] dirNameList = dirPath.split("\\\\");
// 設定文件level的base
fileLevel = dirNameList.length;
// 按格局輸入
for (int i = ; i < dirNameList.length; i ++) {
System.out.println(createPrintStr(dirNameList[i], i));
}
}
/**
* 輸入給定目次下的文件,包含子目次中的文件
* @param dirPath 給定的目次
*/
public void readFile(String dirPath) {
// 樹立以後目次中文件的File對象
File file = new File(dirPath);
// 獲得代表目次中一切文件的File對象數組
File[] list = file.listFiles();
// 遍歷file數組
for (int i = ; i < list.length; i++) {
if (list.isDirectory()) {
System.out.println(createPrintStr(list.getName(), fileLevel));
fileLevel ++;
// 遞歸子目次
readFile(list.getPath());
fileLevel --;
} else {
System.out.println(createPrintStr(list.getName(), fileLevel));
}
}
}
public static void main(String[] args) {
ReadDirectory rd = new ReadDirectory();
String dirPath = "D:\\有道辭書";
rd.printDir(dirPath);
rd.readFile(dirPath);
}
}
輸入成果以下:
以上就是本文的全體內容,願望年夜家愛好。