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

Làm thế nào để liệt kê các tệp ẩn trong một thư mục trong Java?

Phương thức ListFiles () trả về một mảng chứa các đối tượng (đường dẫn trừu tượng) 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.

Giao diện Bộ lọc Tệp là bộ lọc các tên đường dẫn mà bạn có thể chuyển nó làm tham số cho phương thức listFiles (). Phương pháp này lọc các tên tệp được chuyển qua bộ lọc đã chuyển.

Để lấy các thư mục ẩn trong một thư mục, hãy triển khai FileFilter chỉ chấp nhận các thư mục ẩn và chuyển nó làm tham số cho phương thức listFiles ().

Ví dụ

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
public class Test{
   public static void main(String args[]) throws IOException {
    //Creating a File object for directory
    File directoryPath = new File("D:\\ExampleDirectory");
    //Creating filter for directories files
    FileFilter fileFilter = new FileFilter(){
         public boolean accept(File dir) {          
            if (dir.isDirectory()&& dir.isHidden()) {
               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.getName());
         System.out.println(fileName);
      }  
   }
}

Đầu ra

List of the jpeg files in the specified directory:
hidden directory1
D:\ExampleDirectory\hidden directory1
hidden directory2
D:\ExampleDirectory\hidden directory2

Chúng tôi cũng có thể lấy danh sách các tệp ẩn bằng phương thức is Hidden () của lớp Files -

Ví dụ

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.stream.Stream;
public class Demo {
   public static void main(String[] args) throws IOException {
       File dir = new File("D:\\ExampleDirectory");
       File[] files = dir.listFiles(File::isHidden);
       Stream <File> fileStream = Arrays.stream(files);
       fileStream.forEach(file -> System.out.println(file.getName()));
    }
}

Đầu ra

D:\ExampleDirectory\hidden directory1
D:\ExampleDirectory\hidden directory2