如何在OSX上获取Java文件所有者的名称?

Jam*_*ore 6 java macos

我只需要知道Mac上使用Java的文件的所有者名称 - 我该怎样才能获得它?谢谢!

Bal*_*usC 16

直到Java 7才有可能实现.使用Java 7,您可以使用Files#getOwner()它.

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

在Java 7之前,最好的办法是运行命令或JNI以及一些平台本机代码.

也可以看看:


Don*_*ows 4

这个很恶心。没有标准方法可以获取文件的所有者(至少在 Java 6 及之前,这是 OSX 的当前生产版本)。现在最简单的方法是使用 aProcessBuilder来执行以stat文件名作为参数的调用,然后解析子进程在标准输出通道上返回的结果。解析结果时必须小心,因为 OSX 上的用户名可能包含空格。

或者,使用 JNI。