14

次のコードを使用して、ファイルの所有者の名前を取得できます。

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

しかし、私は問題のユーザーの数値UNIXIDも取得しようとしています。デバッガーでは、「UnixFileAttributes」(PosixFileAttributesのサブクラス)内に隠れていることがわかりますが、それを取得するための合理的に標準的な方法はありますか?

4

2 に答える 2

11

実際には、次の方法でこのようなUnix固有の属性にアクセスできる「unix」ビューがあります。

int uid = (int) Files.getAttribute(path, "unix:uid", NOFOLLOW_LINKS);
于 2013-02-15T01:14:52.370 に答える
5

奇妙な理由で、Javaチームはこれを文書化することを拒否しています。

しかし、 jdk / test / java / nio / file / Files/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");
于 2015-07-14T13:00:10.090 に答える