2011-06-22 57 views
12

我可以使用下面的代碼來獲取文件所有者的名稱;如何使用java7文件屬性apis獲取數字groupid/userid?

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

但我也試圖弄清楚有問題的用戶的數字unix id。在調試器中,我可以看到它隱藏在「UnixFileAttributes」(PosixFileAttributes的子類)中,但是有沒有合理的標準方法來獲得它?

回答

6

實際上,有一個「UNIX」查看這些Unix的特定屬性,通過你可以訪問:

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

出於某種奇怪的原因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");