我正在尝试编写一个在 NFS 文件系统上的 Linux 环境中运行的 Java 应用程序。
我注意到,当我调用 时java.io.File.exists()
,它对ESTALE
(过时的 NFS 文件句柄)和ENOENT
(没有这样的文件或目录)都返回 false。对于我的应用程序,我需要能够区分两者。
目前我正在考虑stat()
使用 JNA 实现调用,但这似乎有点过头了,因为必须实现整个统计结构和所有__xstat64
看起来如此依赖于平台的东西。
errno
有没有一种简单的方法可以在 Java 调用或任何其他想法之后简单地获取底层File.exists()
来解决这个问题?