对于isDirectory,文件返回false,而Java中的isFile

new*_*bie 2 java file

为什么文件为isFile()方法返回false ,即使它是文件.当它是目录时,它返回false isDirectory().难道我做错了什么?我测试的这些文件/目录不存在,我需要创建这些,所以这就是为什么我要测试我是否应该使用createFile()mkdir().

File file = new File("C:/Users/John/Desktop/MyDir/file.txt");
if(!file.exists())
{
    System.out.println("Is directory : " + file.isDirectory());         
    System.out.println("Is file : " + file.isFile());
}
Run Code Online (Sandbox Code Playgroud)

flo*_*flo 10

在你的if,你要检查,如果该文件不存在.如果它不存在那么它既不是文件也不是目录.

Java无法确定您的File对象是文件还是仅包含路径字符串的目录.String可以表示文件或目录(您可以拥有名为"file.txt"的文件夹或具有相同名称的文件).