如果File不是文件或目录,如何找出它?

Ama*_*a S 8 java

File.isFile()并且File.isDirectory()两者都不仅在File不是指定类型时返回false ,而且File在文件系统上本身不存在时返回false .如何File在不存在的情况下确定代表文件或目录?

Mik*_*uno 10

通常,特定路径可以表示目录和文件.在该路径中创建目录或文件之前,它对于其中一个或另一个的概念是无效的.

然而,有一个特例.如果路径以路径分隔符结束(在类Unix系统上为'/',在Windows上为'\',在其他系统上可能完全不同),那么至少在类Unix系统上,路径不能是文件的路径.我不知道这对所有系统是否有效.


Ste*_*n C 6

你的问题就像问这个:

"如果这个盒子里面只有一只猫或一只狗,它怎么能判断它?"

从表面上看,这个问题是荒谬的,你的也是如此.如果文件是路径是指不存在的文件系统对象(即"无"),则询问"无">>是"文件还是目录"是没有意义的.这显然不是.

具体来说,在任何时刻,以下所有谓词都包含:

 file.exists() == false IMPLIES 
      file.isDirectory() == false AND file.isFile() == false

 file.isDirectory() == true OR file.isFile() == true IMPLIES 
      file.exists() == true

 file.isDirectory() == true IMPLIES 
      file.isFile() == false

 file.isFile() == true IMPLIES 
      file.isDirectory() == false
Run Code Online (Sandbox Code Playgroud)