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

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

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

或者,使用JNI。

直到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以及一些平台本机代码。

也可以看看:

  • Java 7 NIO教程 – 管理元数据