如何在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