欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

获取指定目录下的全部的java文件的绝对路径,包含子目录中的

更新时间: 2014-01-05 00:50:39 责任编辑: Author_N1

 

获取指定目录下的所有的java文件的绝对路径,包含子目录中的。
/**
* 获取指定目录下的所有的java文件的绝对路径,包含子目录中的。
*  要求存放到集合中(注意,过滤器对象只能有一个。)
*/
public static void main(String[] args) {
/*
* 思路;
* 1,既然包含子目录:递归。
* 2,递归出来的所有的文件和文件夹,需要加上过滤器,过滤出指定的文件。
* 3,将满足过滤器条件的文件存储到集合中。
* 注意:过滤器不要定义递归代码中,这样容器导致过滤器创建过多,内存消耗。
*/

File srcDir = new File("E:\\JavaSE_Code");

long start = System.currentTimeMillis();

FileFilter filter = new FileFilterByDirAndSuffix(".java");

List<File> list = new ArrayList<File>();

getJavaFiles_2(srcDir, filter, list);

for (File file : list) {
System.out.println(file.getAbsolutePath());
}
long end = System.currentTimeMillis();

System.out.println("毫秒值:" + (end - start));

}

// 将过滤器定义在srcDir对象的listFiles方法中,只获取子目录和指定的文件。
public static void getJavaFiles_3(File srcDir, FileFilter filter,
List<File> list) {
File[] files = srcDir.listFiles(filter);

for (File file : files) {

if (file.isDirectory()) {
getJavaFiles_3(file, filter, list);
} else {
list.add(file);
}
}
}

/*
* 使用了FileFilter的过滤器。
*/
public static void getJavaFiles_2(File srcDir, FileFilter filter,
List<File> list) {

File[] files = srcDir.listFiles();

for (File file : files) {

if (file.isDirectory()) {
getJavaFiles_2(file, filter, list);
} else {
// 满足过滤器,将file对象添加到集合中。
if (filter.accept(file)) {
list.add(file);
}
// System.out.println(file.getAbsolutePath());
}
}

}

/*
* 使用的是FilenameFilter过滤器。
*/
public static void getJavaFiles_1(File srcDir, FilenameFilter filter,
List<File> list) {

File[] files = srcDir.listFiles();

for (File file : files) {

if (file.isDirectory()) {
getJavaFiles_1(file, filter, list);

} else {

// 满足过滤器,将file对象添加到集合中。
if (filter.accept(file.getParentFile(), file.getName())) {
list.add(file);
}
// System.out.println(file.getAbsolutePath());
}
}

}
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 00:50:39
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/443/
本文WWW.DOC100.NET DOC100.NET版权所有。