2010-06-22 1 views

Antwort

4

Dieser böse ist. Es gibt keine Standardmethode, um den Besitzer einer Datei zu erhalten (mindestens bis einschließlich Java 6, was die aktuelle Produktionsversion für OSX ist). Der einfachste Weg ist, einen stat mit ProcessBuilder mit dem Namen der Datei als Argument auszuführen und dann das Ergebnis zu parsen, das auf dem Standard-Ausgabekanal vom Subprozess zurückgegeben wird. Vorsicht ist beim Parsen des Ergebnisses geboten, da Benutzernamen auf OSX Leerzeichen enthalten können.

Alternativ verwenden Sie JNI.

16

Das ist nicht möglich bis Java 7. Mit Java 7 könnten Sie dazu Files#getOwner() verwenden.

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

Vor Java 7, Ihre beste Wette einen Befehl oder JNI in Kombination mit einiger Plattform nativen Code ausgeführt wird.

Siehe auch:

Verwandte Themen