Recuperar el autor de un Fichero con Java

Lo que pretendo hacer es lo siguiente. Tengo que hacer una aplicación de forma que cuando un usuario la ejecuta, lo primero que tiene que hacer es intentar crear un fichero en un espacio en el que el usuario debería tener permiso. Si el fichero se crea con éxito significará que realmente tiene permiso para ejecutar la aplicación y a continuación necesito recuperar el nombre del usuario. Para ello, tengo que obtener el nombre el autor del fichero. En principio había pensado en recuperar el nombre del usuario que inició la sesión pero no tiene porqué ser el mismo. Mi pregunta es: ¿Es posible leer el autor del fichero? (En principio sería un fichero de texto, aunque podría ser otro tipo).

1 respuesta

Respuesta
1
Por ahora (hasta la versión Java 6), no es posible hacer directamente lo que pides. Hay una petición a Sun para que incluya ese método File. GetOwner que tan bien te vendría. La puedes consultar aquí:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6309963
Puedes hacerlo mediante JNI, no es trivial y puede que en tu caso sea matar moscas a cañonazos. Por si acaso, aquí tienes un enlace bastante bueno en el que lo explican:
http://www.telio.be/blog/2007/06/26/getting-the-file-owner-in-java-using-jni/
Tampoco hay una propiedad accesible mediante System. GetProperty que te sirva porque, como bien dices, creo que podría no coincidir este usuario con el del autor del fichero.
Más opciones "cutres" si realmente necesitas eso:
- Usar Runtime.exec para ejecutar algún comando DEPENDIENTE DEL ENTORNO que te de esa información (por ejemplo un ls en UNIX). Piensa que puedes perder una de las ventajas más importantes de Java que es el que sea multiplataforma.
- Echa un ojo al método System. Getenv a ver si te puede servir alguna variable de entorno. Te digo lo mismo que en el punto anterior.
Después de todo este ladrillo, el resumen: Directamente no se puede. :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas