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

问题描述 投票:6回答:2

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

java macos
2个回答
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以及一些平台本机代码。

也可以看看:

© www.soinside.com 2019 - 2024. All rights reserved.