2010-06-30 4 views
8

Lorsque je lance System.getProperty("user.home") sur turkish windows 7, j'obtiens "C: \ Users \ aaaa" même si le dossier "Users" n'existe pas dans mon ordinateur (j'ai la traduction turque de "utilisateurs"). Comment puis-je obtenir les bonnes informations utilisateur.home? Mercijava user.home pour retourner dans la langue locale

+4

Wow. C'est intéressant. Peut-être lié au bogue suivant: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4787931 – aioobe

+0

Un autre lien connexe; http://www.cubiclemuses.com/cm/blog/archives/000189.html/ – aioobe

+0

Le bug mentionné par @aioobe suggère d'utiliser System.getenv ("USERPROFILE") dans java 5, quelle version de java utilisez-vous? – krock

Répondre

3

même si le dossier « Utilisateurs » ne existe dans mon ordinateur (j'ai la traduction turque des « utilisateurs »).

Ce n'est pas vrai. Vous avez le dossier "Utilisateurs". Windows le traduit automatiquement lors de l'affichage. Mais vous devez utiliser "Users" pour les chemins du système de fichiers, ce qui revient à user.home. Le nom localisé n'est pertinent que pour l'afficher à l'utilisateur. Je ne suis pas sûr de savoir comment l'obtenir à partir du code Java. Franchement, je pense que l'idée d'afficher différents noms de dossier à l'utilisateur plutôt que ce qui est réellement présent dans le système de fichiers est une perversion bizarre.

10

Quelle version de Windows utilisez-vous? Sur Vista et au-dessus (2008, 2008R2, Windows7), le dossier est appelé Users dans le système de fichiers, quelle que soit la langue en cours. Mais Windows Explorer l'affiche dans la langue de l'interface utilisateur, "Benutzer" (allemand) dans mon cas. Vous pouvez vérifier dans une fenêtre de commande que le vrai nom de ce dossier est Users.

+2

Yup, cela devait créer une certaine confusion. +1 – Henning

+0

vous avez raison. Je l'ai vérifié par programme avec le répertoire java C: \ Users, mais pas le nom du dossier traduit. – artsince

Questions connexes