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

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

Ví dụ sau in ra các file trong thư mục dựa trên extension (phần mở rộng):

Ví dụ 1 - Dùng Files.walk() và Stream filter

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Stream;

public class Demo {
    public static void main(String[] args) throws IOException {
        Stream<Path> path = Files.walk(Paths.get("D:\\ExampleDirectory"));
        System.out.println("List of PDF files:");
        path = path.filter(var -> var.toString().endsWith(".pdf"));
        path.forEach(System.out::println);
        
        path = Files.walk(Paths.get("D:\\ExampleDirectory"));
        System.out.println("List of JPG files:");
        path = path.filter(var -> var.toString().endsWith(".jpg"));
        path.forEach(System.out::println);
        
        path = Files.walk(Paths.get("D:\\ExampleDirectory"));
        System.out.println("List of text files:");
        path = path.filter(var -> var.toString().endsWith(".txt"));
        path.forEach(System.out::println);
        
        path = Files.walk(Paths.get("D:\\ExampleDirectory"));
        System.out.println("List of word files:");
        path = path.filter(var -> var.toString().endsWith(".docx"));
        path.forEach(System.out::println);
    }
}

Đầu ra

List of PDF files:
D:\ExampleDirectory\demo1.pdf
D:\ExampleDirectory\demo2.pdf
List of JPG files:
D:\ExampleDirectory\sample_jpeg1.jpg
D:\ExampleDirectory\sample_jpeg2.jpg
List of text files:
D:\ExampleDirectory\sample1.txt
D:\ExampleDirectory\sample2.txt
D:\ExampleDirectory\sample3.txt
List of word files:
D:\ExampleDirectory\test1.docx
D:\ExampleDirectory\test2.docx

Ví dụ 2 - Dùng FilenameFilter

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;

public class MyExample {
    public static void main(String args[]) throws IOException {
        File directoryPath = new File("D:\\ExampleDirectory");
        
        FilenameFilter jpgFilefilter = new FilenameFilter() {
            public boolean accept(File dir, String name) {
                String lowercaseName = name.toLowerCase();
                if (lowercaseName.endsWith(".pdf")) {
                    return true;
                } else {
                    return false;
                }
            }
        };
        
        String imageFilesList[] = directoryPath.list(jpgFilefilter);
        System.out.println("List of the jpeg files in the specified directory:");
        for (String fileName : imageFilesList) {
            System.out.println(fileName);
        }
    }
}

Đầu ra

List of the jpeg files in the specified directory:
demo1.pdf
demo2.pdf