深度遍历文件夹

import java.io.File;

public class SearchFileTestDriver {
	
	public static void main(String[] args) {
		File file = new File("E:\\atm");
		searchFiles(file, 0);
	}
	
	public static void searchFiles(File file, int level){
		
		if(file != null && file.exists() && file.isDirectory()){
			System.out.println(getSpace(level) + file.getName());
			level ++;//增加层级
			// 思路
			//1. 获取文件夹所有内容,包括子文件夹和文件
			File[] files = file.listFiles();
			//2. 判断这些内容,如果是一个子文件夹,继续遍历
			//3. 如果是一个文件,直接打印出来
			for(File f : files){
				if(f.isDirectory()){
					searchFiles(f, level);
				}else{
					System.out.println(getSpace(level) + f.getName());
				}
			}
		}else{
			//throw new IllegalArgumentException();
			throw new RuntimeException("调用此方法参数有误!");
		}
		
	}
	
	public static String getSpace(int level){
		String str = "";
		for(int i = 0; i < level; i ++){
			str += "|--";
		}
		return str;
	}
}

  

posted @ 2014-03-13 20:11  lxricecream  阅读(261)  评论(0)    收藏  举报