Java File.isDirectory() returns False for a Directory in Linux
Please see code snippet:
File[] additionalFiles = new File(FILE_PATH).listFiles();
boolean isDirectory = file.isDirectory();
I have verified that the directory path is correct, and when I run the code on Windows, the value 开发者_JAVA技巧of isDirectory is true (as it should be). Any suggestions as to why this occurs on Linux (RedHat Enterprise Linux)?
Symlinks don't read as directories, if I remember correctly. The right way around that is:
new File(FILE_PATH).getCanonicalFile().isDirectory();
(NOTE: Untested, I don't have a linux box to test this on easily).
I experienced this issue once. My case is so funny, I was reading the path from a properties file and that path contained a tab character at the end of the string. That was the reason why the path wasn't recognized as a directory
Checkout this link http://bugs.sun.com/view_bug.do;jsessionid=56e03cb783aaf9725daf5ec8d8?bug_id=6539692
You may have this issue.
Otherwise I would guess an issue with file permissions (though that might throw back security exception and I am assuming your code does not wrap it and return false) or may be a sym link issue that I dont know much about.
精彩评论