Java File.isDirectory()在Linux中为目录返回False

时间:2010-03-15 21:25:59

标签: java file-io

请参阅代码段:

File[] additionalFiles = new File(FILE_PATH).listFiles();
boolean isDirectory = file.isDirectory();

我已经验证目录路径是正确的,当我在Windows上运行代码时,isDirectory的值为true(应该是)。有关为何在Linux(RedHat Enterprise Linux)上发生这种情况的建议吗?

3 个答案:

答案 0 :(得分:6)

如果我没记错的话,

符号链接不会读为目录。正确的方法是:

 new File(FILE_PATH).getCanonicalFile().isDirectory(); 

(注意:未经测试,我没有linux盒子可以轻松测试)。

答案 1 :(得分:5)

我曾经历过这个问题。我的情况非常有趣,我正在从属性文件中读取路径,并且该路径在字符串的末尾包含制表符。这就是道路未被识别为目录的原因

答案 2 :(得分:0)

结帐此链接 http://bugs.sun.com/view_bug.do;jsessionid=56e03cb783aaf9725daf5ec8d8?bug_id=6539692

您可能遇到此问题。

否则我会猜测文件权限的问题(虽然这可能会引发安全异常,我假设你的代码没有包装它并返回false)或者可能是一个我不太了解的sym链接问题。