我正在嘗試編寫在NFS文件系統上的Linux環境上運行的Java應用程序。在Java中區分ESTALE和ENOENT的最佳方法
我注意到當我打電話給java.io.File.exists()
時,它對於ESTALE
(陳舊的NFS文件句柄)和ENOENT
(沒有這樣的文件或目錄)都返回false。對於我的申請,我需要能夠區分兩者。
目前我正在考慮使用JNA來實現stat()
的調用,但這似乎是矯枉過正的,不得不實施整個統計結構和所有依賴平臺的東西。
有沒有簡單的方法來簡單地獲得像File.exists()
這樣的Java調用之後的底層errno
或任何其他想法來解決這個問題?
我喜歡這個建議。我也考慮過實現'access(file,F_OK)',而這個過程要簡單得多,但實際上並沒有區分'ESTALE'和'ENOENT'。但最終我們找到了一個不需要這種差異化的解決方案。 –