如何在java中搜索目录中的文件
List()File类的方法返回一个String数组,其中包含当前(File)对象表示的路径中所有文件和目录的名称。
为了搜索文件,您需要使用该equals()方法将目录中每个文件的名称与所需文件的名称进行比较。
示例
import java.io.File;
import java.util.Arrays;
import java.util.Scanner;
public class Example {
public static void main(String[] argv) throws Exception {
System.out.println("输入目录路径: ");
Scanner sc = new Scanner(System.in);
String pathStr = sc.next();
System.out.println("输入所需的文件名: ");
String file = sc.next();
System.out.println(file);
File dir = new File(pathStr);
String[] list = dir.list();
System.out.println(Arrays.toString(list));
boolean flag = false;
for (int i = 0; i < list.length; i++) {
if(file.equals(list[i])){
flag = true;
}
}
if(flag){
System.out.println("File Found");
}else{
System.out.println("File Not Found");
}
}
}输出结果输入目录路径: D:\\ExampleDirectory 输入所需的文件名: demo2.pdf demo2.pdf [demo1.pdf, demo2.pdf, sample directory1, sample directory2, sample directory3, sample directory4, sample_jpeg1.jpg, sample_jpeg2.jpg, test1.docx, test2.docx] File Found
File类的String[]list(FilenameFilterfilter) 方法返回一个String数组,其中包含当前(File)对象表示的路径中所有文件和目录的名称。但是重新调整的数组包含根据指定过滤器过滤的文件名。FilenameFilter 是Java具有单个方法的接口。
accept(Filedir,Stringname)
要搜索文件名,您需要实现一个与所需文件名匹配的FilenameFilter。
示例
import java.io.File;
import java.io.FilenameFilter;
public class Example {
public static void main(String[] argv) throws Exception {
File dir = new File("D:\\ExampleDirectory");
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.equalsIgnoreCase("demo1.pdf");
}
};
String[] files = dir.list(filter);
if (files == null) {
System.out.println("File Not Found");
}else {
System.out.println("File Found");
}
}
}输出结果File Found