Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Tìm kiếm file trong thư mục trong Java

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