下面是网上找的代码。貌似只能在某一路径下查找。而我希望的是譬如对D盘内的每个文件夹中的每个文件都查找一遍。
最好还能实现对查找到的文件信息:如修改日期等一一输出。
新手初学,希望高手们能写个完整的代码参考一下,谢谢~import java.io.File;
import java.io.FileFilter;public class Test implements FileFilter { private String keyword; public Test(String keyword) {
this.keyword = keyword;
} public boolean accept(File pathname) {
return pathname.getName().toLowerCase().indexOf(keyword) >= 0;
} /**
* 测试方法
*/
public static void main(String[] args) {
File path = new File("D:/");
File[] list = path.listFiles(new Test(".exe"));
for (int i = 0; i < list.length; i++) {
System.out.println(list[i].getName());
}
}
}
最好还能实现对查找到的文件信息:如修改日期等一一输出。
新手初学,希望高手们能写个完整的代码参考一下,谢谢~import java.io.File;
import java.io.FileFilter;public class Test implements FileFilter { private String keyword; public Test(String keyword) {
this.keyword = keyword;
} public boolean accept(File pathname) {
return pathname.getName().toLowerCase().indexOf(keyword) >= 0;
} /**
* 测试方法
*/
public static void main(String[] args) {
File path = new File("D:/");
File[] list = path.listFiles(new Test(".exe"));
for (int i = 0; i < list.length; i++) {
System.out.println(list[i].getName());
}
}
}
解决方案 »
- Netbeans使用其他look and feel
- 求助,Swing实现两点连线的问题,谢谢
- 关于验证JAR的数字签名
- 我的JCtreator遇到中文都不行,怎么回事啊?
- 初学java,有什么好的建议,谢谢!!!
- 问下下拉式菜单怎么和数据库连起来啊?
- java菜鸟提问:是否能从线程中得到一个参数!谢谢
- help!那位高手知道如何获取cpu,内存的使用信息
- 请问Java中的“抛出异常”是怎么回事?我怎么知道我的程序会抛出什么样的异常啊?
- 怎样用ASCII码? String+ASCII 0x01+String,形成 byte[]
- label怎么输出StringBuffer类型的数据?
- 用this和super调用一个方法有什么区别
import java.io.File;public class IterateDisk { public static void main(String[] args) {
File disk = new File("F:/");
File[] file = disk.listFiles();
for (int j = 0; j < file.length; j++) {
iterateFiles(file[j]);
}
} public static void iterateFiles(File file) {
if (file.isDirectory()) {
File[] files = file.listFiles(); for (int i = 0; i < files.length; i++) {
iterateFiles(files[i]);
System.out.println("----" + files[i].getName());
}
} else
System.out.println("----" + file.getName());
}
};
那要过滤出指定类型或名称的文件怎么办呢?
System.out.println("----" + files[i].getName());
外层根据文件名和文件后缀名进行过滤即可
下面的代码被我改的乱七八糟了,麻烦您帮我看看吧,谢谢谢谢~~import java.io.File;
import java.io.FileFilter;public class Test implements FileFilter { private String keyword; public Test(String keyword) {
this.keyword = keyword;
} public boolean accept(File pathname) {
return pathname.getName().toLowerCase().indexOf(keyword) >= 0;
} /**
* 测试方法
*/
public static void main(String[] args) {
File path = new File("D:/");
// File[] list = path.listFiles(new Test(".exe"));
///////////////////////
File[] file = path.listFiles();
for (int j = 0; j < file.length; j++) {
iterateFiles(file[j]);
}
}public static void iterateFiles(File file)
{
if (file.isDirectory())
{
File[] files = file.listFiles(); for (int i = 0; i < files.length; i++)
{
iterateFiles(files[i]);
//System.out.println("----" + files[i].getName());
}
}
else
{
File[] list = file.listFiles(new Test(".exe"));
for (int i = 0; i < list.length; i++)
{
System.out.println(list[i].getName());
}//System.out.println("----" + file.getName());
}
}
}
得,我帮人帮到底:
import java.io.File;public class IterateDisk {
public static final String[] searchNames = { "a", "name2", "namexxxxx" };
public static final String[] searchType = { ".txt" }; public static void main(String[] args) {
File disk = new File("F:/");
File[] file = disk.listFiles(); for (int j = 0; j < file.length; j++) {
iterateFiles(file[j]);
}
} public static void iterateFiles(File file) {
if (file.isDirectory()) {
File[] files = file.listFiles();
for (int i = 0; files != null && i < files.length; i++) {
iterateFiles(files[i]);
}
} else {
if (isFileMatchCondition(file.getName()))
System.out.println("----" + file.getAbsolutePath());
}
} public static boolean isFileMatchCondition(String fileName) {
boolean _matchName = false, _matchType = false;
for (String name : searchNames) {
if (fileName.indexOf(name) != -1) {
_matchName = true;
break;
}
} for (String type : searchType) {
if (fileName.endsWith(type)) {
_matchType = true;
break;
}
}
return _matchName && _matchType;
}
};
虽然还有很多地方不懂,google到什么文件操作大全,接下来就靠自己学习了。
再次感谢~