Java 获取特定用户的文件权限

Java 获取特定用户的文件权限,java,Java,我想获得特定用户的文件权限。目前我正在做这样的事情: File file1 = new File(filePath); System.out.println("write permissions: " + file1.canWrite); //and other attributes 这提供了用户执行程序的权限。但问题是我想指定一个用户,或者至少打印文件的所有权限,而不仅仅是所有用户的权限。 有什么想法吗?没有独立于实现的方法来获取此信息 您必须查看正在哪个平台上执行。e、 在典型的UN

我想获得特定用户的文件权限。目前我正在做这样的事情:

 File file1 = new File(filePath);
 System.out.println("write permissions: " + file1.canWrite);
 //and other attributes
这提供了用户执行程序的权限。但问题是我想指定一个用户,或者至少打印文件的所有权限,而不仅仅是所有用户的权限。
有什么想法吗?

没有独立于实现的方法来获取此信息

您必须查看正在哪个平台上执行。e、 在典型的UNIX文件系统上,有所有者、组和世界权限

要检查用户是否为文件所有者,请在此处回答: 正如上面提到的链接中的答案所示,在某些实现中,获取文件所有者可能会失败

可能不允许用户以所有者身份读/写文件,但仍可以基于组或世界权限执行操作。要检查组,您必须根据文件系统和操作系统查询LDAP或UNIX组或Active Directory

当操作系统和文件系统支持ACL以及可以定义细粒度每用户权限的常规UNIX权限时,这将变得更加复杂。Java没有标准API来访问这些。看见现有的
java.nio
API在这里并不总是有用的

粘滞位在大多数Unix中也起着不允许非目录所有者移动或删除文件的作用,但语义不同,请阅读:


TL;DR:没有简单的方法,根据您的使用情况,您必须调用操作系统来获得每个用户的文件权限。

我找到了这篇文章,也许这有帮助;尝试
Files.getFileAttributeView(path,AclFileAttributeView.class).getAcl()
返回所有
acentry
s,然后使用测试用户。你们都是对的,@thenop57回答在windows上工作。但Casper提供了与解决方案的链接。谢谢两位。