java 读取特定目录上所有java文件的名称

java 读取特定目录下所有java文件的名称

/*
 * Administrator
 * 2012-5-10
 */
package com.test;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class FileTest {
	
	/**
	 * 获取当前目录下所有java文件
	 * @param directory
	 * @return
	 */
	public List<String> listFilesByName(String directory) {
		List<String> files = new ArrayList<String>();
		File file = new File(directory);
		File[] childrenFiles = file.listFiles();
		for (int i = 0; i < childrenFiles.length; i++) {
			File childFile = childrenFiles[i];
			if (childFile.isDirectory()) {
				List<String> grandsons = listFilesByName(childFile.getPath());
				for(int j=0; j<grandsons.size(); j++) {
					if(grandsons.get(j).endsWith(".java")){
						files.add(grandsons.get(j));
					}					
				}
			} else if(childFile.isFile() && childFile.getPath().endsWith(".java")){
				files.add(childFile.getPath());
			}
		}
		return files;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//以当前路径来创建一个File对象
		File file = new File("");
		//获取绝对路径
		String rootPath = file.getAbsolutePath();
		System.out.println(rootPath);
		//列出所有磁盘的根路径
		File[] roots = File.listRoots();
		for (File root : roots) {
			System.out.println(root);

		}
		FileTest te = new FileTest();
		List<String> tmp = new ArrayList<String>();
		tmp = te.listFilesByName(rootPath);
		for(String p : tmp){
			System.out.println(p);
		}
	}

}