Phương thức list() của lớp File trả về mảng String chứa tên tất cả file và thư mục trong path của object File hiện tại.
Để tìm file: so sánh tên từng file trong thư mục với tên file cần tìm dùng equals().
Ví dụ 1 - Dùng list() và vòng lặp
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("Enter the directory path: ");
Scanner sc = new Scanner(System.in);
String pathStr = sc.next();
System.out.println("Enter the desired file name: ");
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");
}
}
}
Đầu ra
Enter the directory path: D:\\ExampleDirectory Enter the desired file name: 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
Ví dụ 2 - Dùng FilenameFilter
Phương thức String[] list(FilenameFilter filter) trả về mảng String tên file/thư mục đã lọc theo filter. FilenameFilter là interface với method:
accept(File dir, String name)
Implement FilenameFilter match tên file mong muốn.
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");
}
}
}
Đầu ra
File Found