I\'m writing Java 6 application and I have to check if a file is readable. However, on Windows canRead()
always returns true
. So I see that probabl
Java 7 introduced the Files.isReadable
static method, it accepts a file Path and returns true if file exists and is readable, otherwise false.
From the docs
Tests whether a file is readable. This method checks that a file exists and that this Java virtual machine has appropriate privileges that would allow it open the file for reading. Depending on the implementation, this method may require to read file permissions, access control lists, or other file attributes in order to check the effective access to the file. Consequently, this method may not be atomic with respect to other file system operations.
Note that the result of this method is immediately outdated, there is no guarantee that a subsequent attempt to open the file for reading will succeed (or even that it will access the same file). Care should be taken when using this method in security sensitive applications.
Example:
File file = new File("/path/to/file");
Files.isReadable(file.toPath()); // true if `/path/to/file` is readable