[英]How to check all Empty Folders under a Directory in Java
我想在我的E:
Drive 下找到所有空文件夾。 當我在代碼下方運行時,它會顯示E
驅動器中的所有空文件夾。 但主要問題是,它還顯示了一個名為MS OFFICE TUTORIAL SERIES
的文件夾,它不是空的,因為在這個文件夾下還有三個子文件夾。
但是代碼總是顯示空文件列表中的MS OFFICE TUTORIAL SERIES
文件夾是空的。 請幫助找出我在哪里犯了錯誤。
我的代碼:
File directory = new File("E:/");
File[] listFiles = directory.listFiles();
System.out.println("List of Empty Directory\n");
for(int i=0; i<listFiles.length; i++){
if(listFiles[i].isDirectory()){
if(listFiles[i] == null || listFiles[i].length() == 0){
System.out.println(listFiles[i].getName());
}
}
}
截圖以便更好地理解
您使用錯誤的方法來檢查目錄是否實際上是空的。 根據Java 文檔,在目錄上使用 length() 是未定義的“[...]如果此路徑名表示目錄,則返回值未指定。”
因此,您可能想要執行以下操作:
if(listFiles[i].isDirectory()){
final var subDirEntries = listFiles[i].list();
if(subDirEntries.length == 0){
System.out.println("Empty folder: " + listFiles[i].getName());
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.