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

Lấy chỉ thư mục (directories) từ folder trong Java

Phương thức listFiles() trả về mảng object của tất cả file và thư mục trong path của object File hiện tại.

Interface FileFilter lọc tên đường dẫn, truyền vào listFiles(). Lọc dựa trên filter.

Để chỉ lấy thư mục: implement FileFilter chỉ chấp nhận thư mục (dir.isDirectory()), truyền vào listFiles().

Ví dụ 1 - Dùng FileFilter

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;

public class MyExample {
    public static void main(String args[]) throws IOException {
        File directoryPath = new File("D:\\ExampleDirectory");
        
        FileFilter fileFilter = new FileFilter() {
            public boolean accept(File dir) {
                if (dir.isDirectory()) {
                    return true;
                } else {
                    return false;
                }
            }
        };
        
        File[] list = directoryPath.listFiles(fileFilter);
        System.out.println("List of the jpeg files in the specified directory:");
        for (File fileName : list) {
            System.out.println(fileName);
        }
    }
}

Đầu ra

List of the jpeg files in the specified directory:
D:\ExampleDirectory\sample directory1
D:\ExampleDirectory\sample directory2
D:\ExampleDirectory\sample directory3
D:\ExampleDirectory\sample directory4

Ví dụ 2 - Dùng Files.walk() và Files::isDirectory

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 ListOfFiles {
    public static void main(String[] args) throws IOException {
        Stream<Path> path = Files.walk(Paths.get("D:\\ExampleDirectory"));
        path = path.filter(Files::isDirectory);
        path.forEach(System.out::println);
    }
}

Đầu ra

D:\ExampleDirectory
D:\ExampleDirectory\sample directory1
D:\ExampleDirectory\sample directory2
D:\ExampleDirectory\sample directory3
D:\ExampleDirectory\sample directory4