File.isFile()和File.isDirectory()都返回false

use*_*658 12 java file

我有一个名为"aaaäaa.xls"的文件

对于这一点,File.isFile()File.isDirectory()正在恢复false?为什么它返回falseLinux

Mar*_*erg 6

请尝试以下代码示例

if(!pFile.exists()){
   throw new FileNotFoundException();
}

boolean isDir = pFile.isDirectory();

boolean isFile = pfile.isFile();
Run Code Online (Sandbox Code Playgroud)

该文件不是文件

如果它不是目录,并且另外满足其他系统相关标准

如果抛出异常,则必须检查文件路径.


naX*_*aXa 6

根据文件:

public boolean isFile()

返回: 当且仅当此抽象路径名表示的文件存在且为普通文件时才返回 true ; 否则是假的.

在此基础上,您的文件不存在或不是普通文件.

第一个可能的原因:

  1. 文件不存在;
  2. 文件无法访问;
  3. 文件名错误;
  4. 程序中使用的字符编码与创建文件时使用的字符编码不同.

第二个可能的原因:

或者它是JVM中的一个错误.虽然不太可能,但也有可能.例如,我立刻遇到路径名中带有感叹号的问题 - 错误4523159.

如果要以任何方式访问该文件,请考虑调用dir.listFiles()并使用其返回值.


(答案部分基于这个帖子)