วิธีที่ 1: ใช้ FileFilter กับ listFiles()
import java.io.*;
public class Test {
public static void main(String args[]) throws IOException {
File directoryPath = new File("D:\\ExampleDirectory");
FileFilter hiddenDirFilter = f -> f.isDirectory() && f.isHidden();
File[] list = directoryPath.listFiles(hiddenDirFilter);
System.out.println("Hidden Directories:");
for (File f : list) {
System.out.println(f.getName());
System.out.println(f.getAbsolutePath());
}
}
}
วิธีที่ 2: ใช้ Files.isHidden() + Stream (NIO.2)
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); // Static method reference
Stream fileStream = Arrays.stream(files);
fileStream.forEach(f -> System.out.println(f.getAbsolutePath()));
}
}
ผลลัพธ์ตัวอย่าง
Hidden Directories:
hidden directory1
D:\ExampleDirectory\hidden directory1
hidden directory2
D:\ExampleDirectory\hidden directory2
หมายเหตุ
File::isHidden ตรวจสอบทั้ง File และ Directory ที่เป็น Hidden
FileFilter ใช้กับ listFiles() สำหรับ Directory เท่านั้น ต้องเช็ค isDirectory() เพิ่ม
- NIO.2
Files.isHidden(Path) ใช้กับ Path ได้โดยตรง