47 votes

Comment obtenir des locaux dossier de données d'application en Java?

Double Possible:
Qu'est-ce que la croix-plate-forme façon d'obtenir le chemin d'accès de l'application locale du répertoire de données?

Je suis à la recherche d'un moyen d'obtenir l'emplacement des locaux dossier de données d'application, qui est un spécial dossier Windows, en Java. Malheureusement, la suite ne fonctionne que pour les versions anglaises de Windows XP avec les paramètres par défaut:

System.getProperty("user.home") + "\\Local Settings\\Application Data"

Ce que j'aimerais avoir, c'est de quelque chose comme cela .NET:

System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

Est-il un moyen de le faire sans avoir à appeler SHGetSpecialFolderLocation de l'environnement Windows API?

76voto

Ryan Fernandes Points 3938
System.getenv("APPDATA")

(il semble y avoir aucune env variable pour le "Local Settings", mais cela vous donnera les Données de l'Application de dossier)

12voto

Frederik Points 2936

La lecture de la "Shell Folders" clé de registre est obsolète à partir de Windows 95. La clé du registre contient une note disant:"!Ne pas utiliser cette clé de registre. Utiliser la SHGetFolderPath ou SHGetKnownFolderPath à la place." J'ai eu de la trouver à la dure sur un système Vista où toutes les clés ont disparu, à l'exception de la note d'avertissement.

Cette stackoverflow réponse résout ce problème sur Windows à l'aide de JNA, qui est la solution que j'utilise actuellement.

12voto

Charles Godwin Points 11

que dire de la suite

String dataFolder = System.getenv("LOCALAPPDATA");

J'ai une situation où ce n'est PAS en vertu de l'utilisateur".home"

3voto

Jianinz Points 55

Je voudrais utiliser l'une des deux manières suivantes:

String dataFolder = System.getenv("APPDATA");

String dataFolder = System.getProperty("user.home") + "\\Local Settings\\ApplicationData";

1voto

Gregor Points 1366

Vous avez pu lire le chemin de la base de registre: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\** est l'une de ces Touches:

  • Local AppData (C:\Documents and Settings\USER\Local Settings\Application Data)
  • Paramètres Locaux (C:\Documents and Settings\USER\Local Settings)
  • AppData (C:\Documents and Settings\USER\Application Data)

Remarque: Ces exemples de chemins d'accès sont à partir d'un anglais d'installation de Windows XP

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X