公司电脑不能上网,而且我们都是在虚拟机上开发,虚拟机上的windows自带的搜索功能不能用,所以我想自己用java做个检索文件的工具。但是硬盘里有超过一百万个文件,如果慢慢扫描找的话,慢的要死,但是又不知道有什么其他方法?
各位高手帮帮忙吧。
我用dos的tree命令生成了一个树形的目录结构,但是又不知道怎么读取这个结构,因为我找到文件后我还要知道它的绝对路径在哪里?java
各位高手帮帮忙吧。
我用dos的tree命令生成了一个树形的目录结构,但是又不知道怎么读取这个结构,因为我找到文件后我还要知道它的绝对路径在哪里?java
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.List;public class Test1 { public static String fileName = "需要查找的文件名称"; public static List<String> path = new ArrayList<String>();
public static void main(String[] args) throws Exception {
File file = new File("文件夹顶层目录");
find(file);
} public static void find(File dir) {
File[] files = dir.listFiles(new FileFilter() {
public boolean accept(File pathname) {
if(pathname.isDirectory()){
return true;
}
if (pathname.isFile() && pathname.getName().indexOf(fileName) != -1) {
return true;
}
return false;
}
});
if(files != null){
for(File file : files){
if(file.isDirectory()){
find(file);
}else{
path.add(file.getAbsolutePath());
}
}
}
}
}