如何使用java7文件属性apis获取数字groupid / userid?

时间:2011-06-22 20:59:24

标签: java java-7

我可以使用以下代码获取文件所有者的名称;

    final PosixFileAttributes basicFileAttributes =
        Files.readAttributes( path, PosixFileAttributes.class, 
                                    LinkOption.NOFOLLOW_LINKS );
    String ownerName = basicFileAttributes.owner().getName();

但我也试图掌握相关用户的数字unix id。在调试器中,我可以看到它隐藏在“UnixFileAttributes”(PosixFileAttributes的子类)中,但有没有合理的标准方法来掌握它?

2 个答案:

答案 0 :(得分:8)

实际上有一个“unix”视图,你可以通过以下方式访问这些特定于Unix的属性:

int uid = (int) Files.getAttribute(path, "unix:uid", NOFOLLOW_LINKS);

答案 1 :(得分:3)

由于一些奇怪的原因,Java团队拒绝记录这一点。

但来自 的 JDK /测试/ JAVA / NIO /文件/文件/ FileAttributes.java ...

int mode = (Integer)Files.getAttribute(file, "unix:mode");
long ino = (Long)Files.getAttribute(file, "unix:ino");
long dev = (Long)Files.getAttribute(file, "unix:dev");
long rdev = (Long)Files.getAttribute(file, "unix:rdev");
int nlink = (Integer)Files.getAttribute(file, "unix:nlink");
int uid = (Integer)Files.getAttribute(file, "unix:uid");
int gid = (Integer)Files.getAttribute(file, "unix:gid");
FileTime ctime = (FileTime)Files.getAttribute(file, "unix:ctime");
map = Files.readAttributes(file, "unix:*");
map = Files.readAttributes(file, "unix:size,uid,gid");