代码之家  ›  专栏  ›  技术社区  ›  James Skidmore

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

  •  6
  • James Skidmore  · 技术社区  · 14 年前

    我只需要知道使用Java的Mac上的文件所有者的名字——我怎么才能得到它呢?谢谢!

    2 回复  |  直到 6 年前
        1
  •  4
  •   Donal Fellows    14 年前

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

    或者,使用JNI。

        2
  •  16
  •   BalusC    6 年前

    那是不可能的,直到 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,结合一些平台本机代码。

    参见: