根据你要搜索的文件的大致目录(比如D盘根目录),加上你要搜索的文件名(或部分文件名),有了这两个条件就可以实现文件搜索功能啦。
贴上java代码:
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class SearchFile {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入目的路径:");//磁盘根目录也可以,如D:
String path = sc.nextLine();
path = path.replaceAll("\\\\", "\\\\\\\\");
System.out.print("请输入要搜索的文件名(不完整也可以):");
String fileName = sc.nextLine();
List<String> destpath = searchFile(path,fileName);
if(destpath!=null&&destpath.size()>0){
System.out.println("你要找的文件的目录如下:");
for(String s:destpath){
System.out.println(s);
}
}else{
System.out.println("没有找到或您输入有误");
}
sc.close();
}
public static List<String> searchFile(String path,String fileName){
if(path!=null&&fileName!=null){
File file = new File(path);
List<String> list = new ArrayList<String>();
getFilesList(file,fileName,list);
return list;
}
return null;
}
public static void getFilesList(File file,String fileName,List<String> list){
if(file.exists()){
if(file.isDirectory()){
File[] files = file.listFiles();
if(files!=null&&files.length>0){
for(File f:files){
getFilesList(f,fileName,list);
}
}
}else if(file.isFile()){
if(file.getName().contains(fileName)){
list.add(file.getPath());
}
}
}
}
}
结果实验(粗体斜体是你要在控制台输入的目录和文件名):
请输入目的路径:d:
请输入要搜索的文件名(不完整也可以):邓丽君
你要找的文件的目录如下:
d:\酷狗下载\邓丽君\邓丽君 - 爱人.mp3
d:\酷狗下载\邓丽君\邓丽君 - 爱人就是我.mp3
d:\酷狗下载\邓丽君\邓丽君 - 爱人是个多情人.mp3
d:\酷狗下载\邓丽君\邓丽君 - 爱你一万倍.mp3
d:\酷狗下载\邓丽君\邓丽君 - 爱你又失去你.mp3
d:\酷狗下载\邓丽君\邓丽君 - 爱你爱到老.mp3
d:\酷狗下载\邓丽君\邓丽君 - 爱像一首歌.mp3
d:\酷狗下载\邓丽君\邓丽君 - 爱情.mp3
d:\酷狗下载\邓丽君\邓丽君 - 爱情与同情.mp3
d:\酷狗下载\邓丽君\邓丽君 - 爱情如风雨.mp3
d:\酷狗下载\邓丽君\邓丽君 - 爱惜花.mp3
d:\酷狗下载\邓丽君\邓丽君 - 爱慕.mp3
d:\酷狗下载\邓丽君\邓丽君 - 爱我像爱花一样.mp3
d:\酷狗下载\邓丽君\邓丽君 - 爱的使者.mp3
d:\酷狗下载\邓丽君\邓丽君 - 爱的寂寞.mp3
……