簡體   English   中英

如何檢查Java目錄下的所有空文件夾

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM