isFile()的java文件也可以是isDirectory()吗?
以下测试通过:isFile()的java文件也可以是isDirectory()吗?,java,file,Java,File,以下测试通过: File aDir = new File("aDir"); assertTrue(aDir.exists()); assertTrue(aDir.isDirectory()); assertFalse(aDir.isFile()); File aFile = new File("aFile"); assertTrue(aFile.exists()); assertFalse(aFile.isDirectory());
File aDir = new File("aDir");
assertTrue(aDir.exists());
assertTrue(aDir.isDirectory());
assertFalse(aDir.isFile());
File aFile = new File("aFile");
assertTrue(aFile.exists());
assertFalse(aFile.isDirectory());
assertTrue(aFile.isFile());
File awol = new File("notInFileSystem");
assertFalse(awol.exists());
assertFalse(awol.isDirectory());
assertFalse(awol.isFile());
从表面上看,这似乎意味着对于所有file.isFile()
为真的文件,file.isDirectory()
为假。是否有任何已知类型的文件系统/文件类型/java平台不符合此假设
(在不同类别的文件(符号链接、连接点、符号链接/缺少目标的连接点等)之间存在各种各样的混乱,它们的行为可能略有不同)看看JavaDoc,似乎总是这样: ISD董事会: 当且仅当此抽象路径名表示的文件存在时为true 是一个目录;否则就错了 isFile: 当且仅当此抽象路径名表示的文件存在时为true 并且是一个普通文件;否则就错了 如果文件不是目录,则为正常文件,此外, 满足其他系统相关标准。任何非目录文件 由Java应用程序创建的文件保证为普通文件 从:
isFile()
:
测试此抽象路径名表示的文件是否为普通文件。如果文件不是目录,并且满足其他依赖于系统的条件,则该文件是正常的。Java应用程序创建的任何非目录文件都保证是普通文件
这显然意味着,如果isFile()
为true,则isDirectory()
必须为false。根据isDirectory()
doc中的措辞,反过来也是正确的