Ответ 1
Фактически существует представление "unix", к которому вы можете получить доступ к таким специфичным для Unix атрибутам, используя:
int uid = (int) Files.getAttribute(path, "unix:uid", NOFOLLOW_LINKS);
Я могу использовать следующий код, чтобы получить имя владельца файла;
final PosixFileAttributes basicFileAttributes =
Files.readAttributes( path, PosixFileAttributes.class,
LinkOption.NOFOLLOW_LINKS );
String ownerName = basicFileAttributes.owner().getName();
Но я также пытаюсь заполучить числовой идентификатор unix данного пользователя. В отладчике я вижу, что он скрывается внутри "UnixFileAttributes" (подкласс PosixFileAttributes), но есть ли разумно стандартный способ его удержать?
Фактически существует представление "unix", к которому вы можете получить доступ к таким специфичным для Unix атрибутам, используя:
int uid = (int) Files.getAttribute(path, "unix:uid", NOFOLLOW_LINKS);
По какой-то странной причине команда Java отказывается документировать это.
Но из JDK/тест/Java/NiO/Файл/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");