2010-06-30 15 views
8

Cuando ejecuto System.getProperty("user.home") en windows 7 turco, obtengo "C: \ Users \ aaaa" aunque la carpeta "Usuarios" no existe en mi computadora (tengo la traducción turca de "usuarios"). ¿Cómo puedo obtener la información correcta de usuario.home? Graciasjava user.home a devolver en el idioma local

+4

Wow. Eso es interesante. Posiblemente relacionado con el siguiente error: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4787931 – aioobe

+0

Otro enlace relacionado; http://www.cubiclemuses.com/cm/blog/archives/000189.html/ – aioobe

+0

El error mencionado por @aioobe sugiere usar System.getenv ("USERPROFILE") en java 5, ¿qué versión de java estás usando? – krock

Respuesta

3

a pesar de que "los usuarios" carpeta no existen en mi ordenador (que tienen la traducción al turco de "usuarios").

Eso no es verdad. Tienes la carpeta "Usuarios". Windows simplemente lo traduce automáticamente al mostrarlo. Pero debe usar "Usuarios" para las rutas del sistema de archivos, que es lo que user.home devuelve. El nombre localizado solo es relevante para mostrarlo al usuario. No estoy seguro de cómo obtenerlo del código de Java.

Francamente, creo que todo el concepto de mostrar diferentes nombres de carpeta al usuario de lo que realmente está presente en el sistema de archivos es una perversión extraña.

10

¿Qué versión de Windows está ejecutando? En Vista y versiones posteriores (2008, 2008R2, Windows7), la carpeta se llama Users en el sistema de archivos, independientemente del idioma actual. Pero Windows Explorer lo muestra en el idioma de la interfaz de usuario, "Benutzer" (alemán) en mi caso. Puede verificar en una ventana de comandos que el nombre real de esta carpeta es Users.

+2

Sí, eso estaba destinado a crear cierta confusión. +1 – Henning

+0

tienes razón. Lo revisé programáticamente con el directorio java C: \ Users existe, pero el nombre de la carpeta traducida no. – artsince

Cuestiones relacionadas