我想在我的E:云端硬碟下找到所有空檔案夾。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());
}
}
}
截圖以便更好地理解

uj5u.com熱心網友回復:
您使用錯誤的方法來檢查目錄是否實際上是空的。根據Java 檔案,在目錄上使用 length() 是未定義的“[...]如果此路徑名表示目錄,則回傳值未指定。”
因此,您可能想要執行以下操作:
if(listFiles[i].isDirectory()){
final var subDirEntries = listFiles[i].list();
if(subDirEntries.length == 0){
System.out.println("Empty folder: " listFiles[i].getName());
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/497085.html
上一篇:在檔案字串中使用元組作為檔案名
下一篇:更改擴展“型別”
