简体   繁体   中英

How do I get the name of a file's owner in Java on OSX?

I just need to know the owner's name of a file on Mac using Java -- how can I go about getting it? Thanks!

That't not possible until Java 7 . With Java 7, you could use Files#getOwner() for this.

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

Prior to Java 7, your best bet is running a command or JNI in combination with some platform native code.

See also:

This one is nasty. There is no standard method for getting the owner of a file (at least up to and including Java 6, which is the current production version for OSX). The easiest way right now is to use a ProcessBuilder to exec a call to stat with the name of the file as its argument, and then parse the result that will be returned on the standard output channel from the subprocess. Care must be taken when parsing the result because usernames on OSX might have spaces in.

Alternatively, use JNI.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM