1. 程式人生 > >JAVA之File類 獲取一個目錄下的所有資料夾和檔案,包括子資料夾和子檔案

JAVA之File類 獲取一個目錄下的所有資料夾和檔案,包括子資料夾和子檔案

package ioTest.io3;
import java.io.File;
/*
 * 獲取一個目錄下的所有資料夾和檔案,包括子資料夾和子檔案 。
 * 並將資料夾和檔名稱列印在控制檯上面。並且要顯示檔案目錄的層級
 * 注:運用了遞迴的演算法。
 */
public class FileDemo3 {

	public static void main(String[] args) {
		File dir=new File("F:\\黑馬學習日程\\");
		//File dir=new File("F:\\");
		//如果使用上述的碟符的根目錄,會出現java.lang.NullPointerException
		//為什麼?
		getAllFiles(dir,0);//0表示最頂層
	}
	//獲取層級的方法
	public static String getLevel(int level)
	{
		//A mutable sequence of characters.
		StringBuilder sb=new StringBuilder();
		for(int l=0;l<level;l++)
		{
			sb.append("|--");
		}
		return sb.toString();
	}
	public static void getAllFiles(File dir,int level)
	{
		System.out.println(getLevel(level)+dir.getName());
		level++;
		File[] files=dir.listFiles();
		for(int i=0;i<files.length;i++)
		{
			if(files[i].isDirectory())
			{
				//這裡面用了遞迴的演算法
				getAllFiles(files[i],level);
			}
			else {
				System.out.println(getLevel(level)+files[i]);
			}	
		}		 
	}
}