1. 程式人生 > >Java File中列出指定目錄中的所有檔案(包括子目錄中的檔案)

Java File中列出指定目錄中的所有檔案(包括子目錄中的檔案)

需求:
replace(" ",&nbsp)對指定目錄中所有內容的列出(包括子目錄中的內容)
也可以理解為:深度遍歷

注意:如果使用的是listFiles(pathname)方法列出檔案和目錄,則不能之間整個磁碟的內容,而是列出某個檔案中的內容。

程式碼:

import java.io.File;

public class Demo1 {

	public static void main(String[] args) {
		File dir=new File("d:\\html筆記");//不要遍歷d盤的根目錄,而是遍歷某個檔案
		listAll(dir,0);

	}
	//level:層級關係
	private static void listAll(File dir, int level) {
		//根目錄,前面不用列印空格
		System.out.println(getspace(level)+dir.getName());
		level=level+1;//每一次走一層,等級往下走一層
		File[] files=dir.listFiles();//將dir下的資料夾封裝成一個一個的file物件
		for(int i=0;i<files.length;i++){
			
			if(files[i].isDirectory()){
				//說明還是目錄,接著向下遍歷
				listAll(files[i], level);//自己呼叫自己,為遞迴
			}else{
				
				//不是資料夾,直接打印出
				System.out.println(getspace(level)+files[i].getName());
			}
		}
		
	}
	//加空格的方法
	private static String getspace(int level) {
		//拼接空格字串
		StringBuilder sb=new StringBuilder();
		sb.append("|--");
		for(int i=0;i<level;i++){
			sb.insert(0, "|   ");
		}
		return sb.toString();
	}

}

執行結果
在這裡插入圖片描述