我遇到过 file.isFile() 返回 false 的情况,这表明该文件不是“正常的”。但是,我找不到“正常”的定义。文档 link to Oracle状态:
A file is normal if it is not a directory and, in addition, satisfies other system-dependent criteria.
该文件归 _www:staff
所有,并具有 -rw-r--r--
权限。该目录也归 _www:staff
所有,并拥有 drwxrw-r--
权限。访问该文件的进程归 bob:staff
所有。系统是MacOS 10.9。该进程可以很好地读取、加载和显示文件;唯一的问题是对 isFile() 的调用返回 false,这意味着 Java 认为它不是普通文件。
因此,回到更大的问题,即使文件确实存在、路径正确且文件可访问,在什么情况下此调用会返回 false?
最佳答案
在 Unix 系统中,文件可以是:
- 常规文件
- 目录
- 符号链接(symbolic link)
- 命名管道
- socket
- 设备文件
- 门(Sun Solaris 系统)
这里的“普通”文件指的是普通文件。它是系统不对文件的内部结构强加任何要求的一种文件。
关于Java:什么构成了 File.isFile() 上下文中的 "normal"文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25039156/