Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để lấy danh sách các tệp jpg trong một thư mục trong Java?

Danh sách Chuỗi [] (bộ lọc FilenameFilter) phương thức của một lớp Tệp trả về một mảng Chuỗi chứa tên của tất cả các tệp và thư mục trong đường dẫn được đại diện bởi đối tượng (Tệp) hiện tại. Nhưng mảng được sửa lại chứa các tên tệp được lọc dựa trên bộ lọc được chỉ định. Bộ lọc tên tệp là một giao diện trong Java với một phương thức duy nhất.

chấp nhận (Tập tin, tên chuỗi)

Để lấy tên tệp dựa trên phần mở rộng, hãy triển khai giao diện này như vậy và chuyển đối tượng của nó vào phương thức list () được chỉ định ở trên của lớp tệp.

Giả sử chúng ta có một thư mục có tên là ExampleDirectory trong thư mục D với 7 tệp và 2 thư mục dưới dạng -

Làm thế nào để lấy danh sách các tệp jpg trong một thư mục trong Java?

Ví dụ

Chương trình Java sau in tên của tệp văn bản và tệp jpeg trong đường dẫn D:\\ ExampleDirectory riêng biệt.

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
public class Sample{
   public static void main(String args[]) throws IOException {
    //Creating a File object for directory
    File directoryPath = new File("D:\\ExampleDirectory");
    //Creating filter for jpg files
    FilenameFilter jpgFilefilter = new FilenameFilter(){
         public boolean accept(File dir, String name) {
            String lowercaseName = name.toLowerCase();
            if (lowercaseName.endsWith(".jpg")) {
               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:
cassandra_logo.jpg
cat.jpg
coffeescript_logo.jpg
javafx_logo.jpg

Ví dụ

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

Đầu ra

List of the jpeg files in the specified directory:
cassandra_logo.jpg
cat.jpg
coffeescript_logo.jpg
javafx_logo.jpg