Le meilleur moyen d'obtenir le chemin vers le répertoire "Application Data"?
Il existe plusieurs façons d'obtenir le chemin d'accès au répertoire de données d'application:
- à l'aide de la
%APPDATA%
variable d'environnement - appel
SHGetFolderPath
avecCSIDL_APPDATA
Quelle est la meilleure façon d'obtenir le chemin d'accès à partir de l'intérieur d'un programme? Existe-il des problèmes lorsque j'utilise la variable d'environnement?
Quelle méthode est la plus sûre à travers XP, Vista et les versions à venir?
source d'informationauteur Torsten Marek
Vous devez vous connecter pour publier un commentaire.
Je dirais que le fait d'appeler
SHGetFolderPath()
est le plus approprié, et portable de la méthode; les solutions de rechange, comme la lecture d'une variable d'environnement, ou (pire) en essayant de l'extraire de la base de registre sont susceptibles de voyage vous dans le futur.Raymond Chen a un article expliquant pourquoi tirant sur ces chemins à partir de la base de registre est une mauvaise idée.
Vous aurez besoin d'utiliser la GetFolderPath méthode d'obtenir le chemin d'accès réel que de l'Environnement.SpecialFolder.ApplicationData est juste un enum.
Si vous êtes à la programmation .NET, vous pouvez utiliser ceci:
Une différence importante en Python: en cas de fichier unicode chemins
ctypes.windll.shell32.SHGetFolderPathW
retourne une chaîne unicode, alors queos.environ['APPDATA']
renvoie une chaîne d'octets.Au cas où quelqu'un me demandais, en Ruby, la commande devrait ressembler à l'exemple suivant: