2010-06-22 34 views

回答

4

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

或者,使用JNI。

16

直到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。

参见:

相关问题