【问题标题】:Java .isDirectory() return true also on file without extensionJava .isDirectory() 在没有扩展名的文件上也返回 true
【发布时间】:2011-10-06 15:59:26
【问题描述】:

我注意到使用 isDirectory() 方法检查 File 类的实例是否为 Directory 时,此方法对于没有扩展名的文件也返回 true。

例如,如果我有一个文件名 myfile 没有 exetension isDirectory() 方法返回 true,是否有另一种方法检查传递的文件是否真的是一个目录?

我正在 Windows 上尝试...

【问题讨论】:

  • 需要更多细节;哪个平台和JDK版本?另外,您能否发布一个简短的示例,说明您正在使用什么代码?
  • 我觉得这很难相信。
  • 好的,更新到最新版本JDK7,现在可以使用了。
  • 您是否使用与以前相同的文件/目录进行测试?

标签: java file directory


【解决方案1】:

在我的 Windows7 JDK 6 上正常工作。尝试升级您的 JRE/JDK 并仔细检查您是否没有同名的目录。我用这个sn-p检查:

File file = new File("C:\\tomcat\\apache-tomcat-7.0.20\\LICENSE");
System.out.println(file.isDirectory()); // prints false

【讨论】:

    【解决方案2】:

    我已经使用 JDK 6 和 7 尝试了 Windows 7 32 位、64 位,并且在这两种系统上它对我来说都非常好。也找不到任何这种性质的错误报告,您使用的是什么代码?我非常怀疑这是一个直到现在才被发现的错误!

    【讨论】:

      【解决方案3】:

      也许该目录同时包含一个带扩展名的文件和一个同名但没有扩展名的目录。然后配置Windows文件资源管理器隐藏扩展名,认为显示的是文件的真实全名,放入一些测试代码...宾果游戏。

      【讨论】:

      • 我相信在我相信 isDirectory() 曾经(有意义地)被破坏之前,这是肯定的!
      猜你喜欢
      • 2011-10-05
      • 2017-07-21
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      • 2019-04-15
      相关资源
      最近更新 更多