Windows hidden directories not recognized by Java

hamlet :

On my windows 10 machine when I check for hidden folders, Files.isHidden always returns false.

C:\ProgramData is generally a hidden folder but the program returns false instead of expected true

public static void main(String[] args) throws IOException {
    Path directory = Path.of("C:\\ProgramData").toAbsolutePath().normalize();
    System.out.println(Files.isHidden(directory));
}
Dhrubajyoti Gogoi :

You have probably hit a bug. JDK 13 has been patched with a fix. Use the recommendations in the fix note

eg.

public static void main(String[] args) throws IOException {
    Path directory = Path.of("C:\\ProgramData").toAbsolutePath().normalize();
    DosFileAttributes dosFileAttributes = Files.readAttributes(directory, DosFileAttributes.class);
    System.out.println(Files.isHidden(directory));    // Returns true for > JDK13
    System.out.println(dosFileAttributes.isHidden()); // Returns true for < JDK13
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=19064&siteId=1