Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java의 디렉토리에 숨겨진 파일을 나열하는 방법은 무엇입니까?

<시간/>

ListFiles() 메서드는 현재(File) 개체가 나타내는 경로에 있는 모든 파일(및 디렉터리)의 개체(추상 경로)를 포함하는 배열을 반환합니다.

파일 필터 인터페이스는 listFiles() 메소드에 매개변수로 전달할 수 있는 경로 이름에 대한 필터입니다. 이 메서드는 전달된 필터에 전달된 파일 이름을 필터링합니다.

폴더에서 숨겨진 디렉토리를 가져오려면 숨겨진 디렉토리만 허용하는 FileFilter를 구현하고 매개변수로 listFiles() 메서드에 전달합니다.

예시

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);
      }  
   }
}

출력

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

Files 클래스의 is Hidden() 메서드를 사용하여 숨겨진 파일 목록을 가져올 수도 있습니다. -

예시

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()));
    }
}

출력

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