获取指定目录下指定扩展名文件的绝对路径,存储到文本文件中

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileFilter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;


public class TestDriver {


	public static void main(String[] args) throws IOException {
		File file = new File("E:\\PROGRAM\\atm");
		List<File> fileLists = new ArrayList<File>(); 
		FileFilter fileFilter = new FileFilter() {
			@Override
			public boolean accept(File pathname) {
				return pathname.getName().endsWith(".java");
			}
		};
		getAbsolutePath(file, fileLists, fileFilter);
		BufferedWriter buff = new BufferedWriter(new FileWriter("oo.txt"));
		if(!fileLists.isEmpty()){
			for(File tempFile : fileLists){
				buff.write(tempFile.getAbsolutePath());
				buff.newLine();
			}
		}
		buff.flush();
		buff.close();
		
	}
	/**
	 * 获取指定目录下指定扩展名文件的绝对路径,存储到文本文件中
	 * @param file1 指定的目录
	 * @param fileLists 将找到的绝对路径存储 到list集合中
	 * @param fileFilter 后缀名过滤器
	 */
	public static void getAbsolutePath(File file, List<File> fileLists, FileFilter fileFilter){
		//思路
		//1.根据指定目录遍历它的所有文件和文件夹
		//2.如果是文件夹则递归,如果是文件则进行后缀名的过滤
		//3.将找到的文件的绝对路径存入fileLists集合
		if(file != null){
			File[] files = file.listFiles();
			for(File f : files){
				if(f.isDirectory()){
					getAbsolutePath(f,fileLists,fileFilter);
				}else if(f.isFile() && fileFilter.accept(f)){
					fileLists.add(f);
				}
			}
		}else{
			throw new RuntimeException("指定目录为空!");
		}
		
	}
}

  

posted @ 2014-03-10 15:52  lxricecream  阅读(394)  评论(0)    收藏  举报