开发者

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

开发者 https://www.devze.com 2022-12-22 20:25 出处:网络
Please see code snippet: File[] additionalFiles = new File(FILE_PATH).listFiles(); boolean isDirectory = file.isDirectory();

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号