RPW*_*RPW 5 java macos file osx-mavericks
我遇到了file.isFile()返回false(表示文件不是“正常”)的情况。但是,我找不到“正常”的定义。该文档链接到Oracle状态:
如果文件不是目录,并且满足其他与系统有关的条件,则该文件是正常的。
该文件归所有者所有_www:staff并具有许可权-rw-r--r--。该目录也归所有者拥有_www:staff并具有权限drwxrw-r--。正在访问文件的进程由拥有bob:staff。系统是MacOS 10.9。该过程可以读取,加载和显示文件。唯一的问题是对isFile()的调用返回false,这意味着Java认为它不是普通文件。
因此,回到更大的问题,即使文件确实存在,路径正确并且可以访问文件,在什么情况下此调用将返回false?
该目录也由 拥有
_www:staff并具有权限drwxrw-r--。正在访问该文件的进程属于bob:staff。
该进程对该目录没有“x”权限(检查)。JVM 用于执行的系统调用File.isFile()需要此权限。该系统调用失败,因此就该File.isFile()文件而言,该文件不存在。
在授予“r”权限的同时删除目录的“x”权限几乎总是错误的。