將專案從 WebLogic 8 (JDK 1.4) 遷移至 WebLogic 11g (JDK 1.6) 後,呼叫 FileY.filenum() 時拋出 NullPointerException,堆疊追蹤指向 file.list() 回傳 null 導致 files.length 失敗。
File.list() 在目錄不存在、非目錄、或無讀取權限時會回傳 null(非空陣列)。JDK 版本升級可能導致安全性限制更嚴格,或部署路徑不同,使得原本可讀的目錄在新環境不可讀。
File file = new File(fileurl);
if (!file.exists() || !file.isDirectory()) {
// 記錄錯誤或拋出自訂異常
return 0;
}
String[] files = file.list();
int result = (files != null) ? files.length : 0;
file.getAbsolutePath() 確認部署後的真實路徑。若需遞迴統計子目錄檔案數,考慮使用 Files.walk() (JDK 8+) 或 Apache Commons IO FileUtils,更健壯且簡潔。