繁体   English   中英

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

[英]Java File.isDirectory() returns False for a Directory in Linux

请参阅代码段:

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

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

如果我没记错的话,符号链接不会读作目录。 正确的方法是:

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

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

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

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

你可能有这个问题。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM