แนวทาง
ใช้ FileFilter กับ listFiles() ตรวจสอบ isDirectory() และ list().length == 0
ตัวอย่างโค้ด
import java.io.*;
public class MyExample {
public static void main(String args[]) throws IOException {
File directoryPath = new File("D:\\ExampleDirectory");
FileFilter emptyDirFilter = f -> f.isDirectory() && f.list().length == 0;
File[] list = directoryPath.listFiles(emptyDirFilter);
System.out.println("Empty Directories:");
for (File f : list) {
System.out.println(f.getName());
System.out.println(f.getAbsolutePath());
}
}
}
ผลลัพธ์ตัวอย่าง
Empty Directories: sample directory1 D:\ExampleDirectory\sample directory1
หมายเหตุ
f.list()คืน String[] ของไฟล์/โฟลเดอร์ภายใน ความยาว 0 = ว่างf.listFiles()คืน File[] ทำได้เหมือนกัน- NIO.2:
Files.list(path).count() == 0(แต่ต้อง try-with-resources)