/**
* 获取指定目录下的所有的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());
}
}
}
分享到:
相关推荐
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...
Java二进制IO类与文件复制操作实例 16个目标文件 内容索引:Java源码,初学实例,二进制,文件复制 Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系...
150、如何在JSP中包括绝对路径文件? 使用URLConnection即可。 37 151、在servlets和JSP之间能共享session对象吗? 37 152、如何设置cookie在某一时间后过期? 37 153、如何获得当前的sessions数? 37 154、能设置...
这是因为 EditPlus 的语法是设置文件采用的是绝对路径,而在你设置了语法文件之后,再把程序复制到其它目录,因而导致 EditPlus 无法找到该语法文件。 解决办法: 在主程序目录里,找到 Setting.ini 这是 EditPlus ...
这是因为 EditPlus 的语法是设置文件采用的是绝对路径,而在你设置了语法文件之后,再把程序复制到其它目录,因而导致 EditPlus 无法找到该语法文件。 解决办法: 在主程序目录里,找到 Setting.ini 这是 EditPlus ...
这是因为 EditPlus 的语法是设置文件采用的是绝对路径,而在你设置了语法文件之后,再把程序复制到其它目录,因而导致 EditPlus 无法找到该语法文件。 解决办法: 在主程序目录里,找到 Setting.ini 这是 EditPlus ...
如果不能在启动目录(默认为 %systemroot%System32)中找到该文件,将试着在 Windows 安装 CD 中找到它。如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该命令。 Diskpart 创建和删除硬盘...
150、如何在JSP中包括绝对路径文件? 使用URLConnection即可。 37 151、在servlets和JSP之间能共享session对象吗? 37 152、如何设置cookie在某一时间后过期? 37 153、如何获得当前的sessions数? 37 154、能设置...
“库文件名”以.lib或.obj为后缀的将被视为静态库,可使用绝对路径或相对路径(相对当前源代码所在目录),如依赖多个静态库请分别列出并以逗号分隔;“在库中的对应命令名”请务必准确填写静态库中公开导出的符号...
<<page 1>> page begin==================== 目 目目 目 录 录录 ... 11.2 方法中的参数.125 ... 14.4 继承中关于属性的一些问题.169 ... 17.2 文件存储管理 .217 ...这一天 微软公司正式推出了其下一代...
XPath中相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 XSL .Net框架下的XSLT转换技术简介 一个XSLT的简单例子 XSLXSLT板主题整理 xsl入门的好文章 新手学习XSL的好东西 XSL语法介绍 XSL...
删除HKEY_CURRENT_USER/SOFTWARE/Microsoft/windows/CurrentVersion/Explorer/MenuOrder/Start Menu/Programs中所有以oracle 开头的键。 删除HKDY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI中除Microsoft ...