From within a Java program, I want to be able to list out the Windows users and groups who have permission to read a given file. Java has no built-in ability to read the Win
mdma's answer covers the best approaches for Java 6 but here's a quick example for Java 7:
Path file = Paths.get("c:\\test-file.dat");
AclFileAttributeView aclFileAttributes = Files.getFileAttributeView(
file, AclFileAttributeView.class);
for (AclEntry aclEntry : aclFileAttributes.getAcl()) {
System.out.println(aclEntry.principal() + ":");
System.out.println(aclEntry.permissions() + "\n");
}