Как я могу получить имя владельца файла в Java на OSX? - PullRequest
6 голосов
/ 23 июня 2010

Мне просто нужно знать имя владельца файла на Mac с использованием Java - как я могу получить его? Спасибо!

Ответы [ 2 ]

16 голосов
/ 23 июня 2010

Это невозможно до Java 7 . В Java 7 для этого можно использовать Files#getOwner().

Path          path     = Paths.get("/path/to/file.ext");
UserPrincipal owner    = Files.getOwner(path);
String        username = owner.getName();

До Java 7 лучше всего выполнять команду или JNI в сочетании с некоторым собственным кодом платформы.

Смотри также:

4 голосов
/ 23 июня 2010

Это противно.Существует нет стандартного метода получения владельца файла (по крайней мере, до Java 6, включая текущую рабочую версию для OSX).Самый простой способ прямо сейчас - использовать ProcessBuilder для выполнения вызова stat с именем файла в качестве аргумента, а затем проанализировать результат, который будет возвращен в стандартный выходной канал из подпроцесса.При синтаксическом анализе результата необходимо соблюдать осторожность, поскольку в именах пользователей OSX могут быть пробелы.

В качестве альтернативы используйте JNI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...