我使用下面的代碼來檢查文件是否存在,並可以用Java閱讀:Java中file.exists()的詳細信息?
File sourceFile = new File(sourcePath);
if (!sourceFile.exists() || !sourceFile.canRead())
throw new Exception("Source file is not accessible.");
不過,我想解決的問題是確定更精細的細節有關爲什麼存在()可能或者可能不會返回錯誤。例如,該位置可能是可訪問的,但該文件不存在。或者,該位置可能被防火牆阻止,並且該文件確實存在,只是無法訪問。
是否有一個快速的方法之間做出判斷:
- 文件位置是不可訪問(防火牆,安全等)
- 位置是訪問,但文件d.n.e.
- 文件存在但讀取未被授予。
謝謝!
貌似這個類可以提供我正在尋找的細節閱讀給定的文件。 – Paul
嘗試路徑thePath = FileSystems.getDefault()。getPath(sourcePath); thePath.getFileSystem()。provider()。checkAccess(thePath,AccessMode.READ); } \t \t \t \t \t \t 趕上(NoSuchFileException EX1) { 拋出新的異常( 「源文件不存在。」); } 趕上(FileSystemException EX2) {\t \t \t \t \t \t \t //例:網絡路徑沒有被發現。 拋出新的異常(「源文件不可訪問:」+ ex2.getReason()); \t \t \t \t \t \t \t } 趕上(例外前){ 拋出新的異常( 「未知異常:」 + ex.getMessage()); } – Paul
這就是我最後的結果。進入我的程序異常處理程序,但有更多的細節。 – Paul