繁体   English   中英

isFile()的java文件也可以是isDirectory()吗?

[英]Can a java File that isFile() also be 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()为true的所有文件, file.isDirectory()为false。 是否有任何已知类型的文件系统/文件类型/ java平台,这个假设不成立?

(各种类型的文件(符号链接,连接点,符号链接/缺少目标的连接点等)之间存在各种各样的野性, 可能表现略有不同)

看看JavaDoc,似乎总是如此:

http://docs.oracle.com/javase/7/docs/api/java/io/File.html#isFile()

isDirectory:

当且仅当此抽象路径名表示的文件存在且为目录时才为true; 否则是假的

ISFILE:

当且仅当此抽象路径名表示的文件存在并且是普通文件时才返回true; 否则,如果文件不是目录,则文件是正常的,此外,它还满足其他系统相关标准。 由Java应用程序创建的任何非目录文件都保证是普通文件。

文档

isFile()

测试此抽象路径名表示的文件是否为普通文件。 如果文件不是目录,则该文件是正常的,此外,它还满足其他系统相关标准。 由Java应用程序创建的任何非目录文件都保证是普通文件。

这肯定意味着如果isFile()true,isDirectory()必须为false 根据isDirectory() doc中的措辞,反之亦然。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM