2010-06-22 10 views

Respuesta

4

Ésta es desagradable. Hay no método estándar para obtener el propietario de un archivo (al menos hasta e incluyendo Java 6, que es la versión de producción actual para OSX). La manera más fácil en este momento es usar un ProcessBuilder para ejecutar una llamada al stat con el nombre del archivo como argumento, y luego analizar el resultado que se devolverá en el canal de salida estándar del subproceso. Se debe tener cuidado al analizar el resultado porque los nombres de usuario en OSX pueden tener espacios en.

Como alternativa, use JNI.

16

Eso no es posible hasta Java 7. Con Java 7, puede usar Files#getOwner() para esto.

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

Antes de Java 7, lo mejor se está ejecutando un comando o JNI en combinación con algo de código nativo de la plataforma.

Consulte también:

Cuestiones relacionadas