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?
Réponses
Trop de publicités?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.
Vous avez pu lire le chemin de la base de registre: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\*
où *
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