IO流——File類(利用遞歸列出所有文件)

/*
列出指定目錄下文件或者文件夾,包含子目錄中的內容。
也就是列出指定目錄下所有內容。

因爲目錄中還有目錄,只要使用同一個列出目錄功能的函數完成即可。
在列出過程中出現的還是目錄的話,還可以再次調用本功能。
也就是函數自身調用自身。
這種表現形式,或者編程手法,稱爲遞歸。

遞歸要注意:
1,限定條件。

2,要注意遞歸的次數。儘量避免內存溢出。





*/

import java.io.*;

class FileDemo3 
{
	public static void main(String[] args) 
	{
		File dir = new File("d:\\testdir");
		//showDir(dir,0);

		//toBin(6);
		//int n = getSum(8000);
		//System.out.println("n="+n);

		System.out.println(dir.delete());
	}
	public static String getLevel(int level)
	{
		StringBuilder sb = new StringBuilder();
		sb.append("|--");
		for(int x=0; x<level; x++)
		{
			//sb.append("|--");
			sb.insert(0,"|  ");

		}
		return sb.toString();
	}
	public static void showDir(File dir,int level)
	{
		
		System.out.println(getLevel(level)+dir.getName());

		level++;
		File[] files = dir.listFiles();
		for(int x=0; x<files.length; x++)
		{
			if(files[x].isDirectory())
				showDir(files[x],level);
			else
				System.out.println(getLevel(level)+files[x]);
		}
	}
















	public static int getSum(int n)
	{
		if(n==1)
			return 1;
		return n+getSum(n-1);
	}

	public static void toBin(int num)
	{
		if(num>0)
		{
			toBin(num/2);
			System.out.println(num%2);
		}
	}




	public static void method()
	{
		method();
	}
	
	

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章