Recupérer le chemin du dossier de l'utilisateur

Le
batyann811
Bonjour,

Je dois porter un programme C de linux vers windows. Ce programme
utilise 2 fichiers de config :

1 - un fichier de config utilisateur qui se trouve dans le dossier perso
de l'utilisateur du prog. (/home/user)

2 - un fichier de config globale qui se trouve dans le dossier de
configuration du system ( /etc )

Je suppose qu'il faut placer ces fichiers dans le dossier de
l'utilisateur pour le fichier de config de l'utilisateur et dans le
dossier d'installation du programme pour le fichier de config global.
Mais comment récupérer le chemin d'accès à ces dossiers ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-Claude BELLAMY
Le #16755061
"batyann811" news:48c52a31$0$863$
Bonjour,

Je dois porter un programme C de linux vers windows. Ce programme
utilise 2 fichiers de config :

1 - un fichier de config utilisateur qui se trouve dans le dossier perso
de l'utilisateur du prog. (/home/user)

2 - un fichier de config globale qui se trouve dans le dossier de
configuration du system ( /etc )

Je suppose qu'il faut placer ces fichiers dans le dossier de
l'utilisateur pour le fichier de config de l'utilisateur et dans le
dossier d'installation du programme pour le fichier de config global. Mais
comment récupérer le chemin d'accès à ces dossiers ?




Tu pourras utiliser, au choix :

- la fonction "ExpandEnvironmentStrings"
DWORD ExpandEnvironmentStrings(
LPCTSTR lpSrc,
LPTSTR lpDst,
DWORD nSize);
à laquelle on passera en paramètre une variable d'environnement
%ALLUSERSPROFILE%
dossier de ce qui est commun à tous les utilisateurs
%USERPROFILE%
dossier propre à l'utilisateur (profil)
%ProgramFiles%
dossier des applications
...
Pour info, le contenu de ces variables se retrouve également dans la
BDR :
HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerUser
Shell Folders
HKLMSoftwareMicrosoftWindowsCurrentVersionExplorerUser
Shell Folders

ou, mieux, :
- la fonction "SHGetFolderPath"
HRESULT SHGetFolderPath(
HWND hwndOwner,
int nFolder,
HANDLE hToken,
DWORD dwFlags,
LPTSTR pszPath);
"nFolder" est un CSIDL (constant special item ID list) qui indique
le dossier recherché.
cf. http://technet.microsoft.com/en-us/office/bb762494(VS.85).aspx
pour avoir la liste.
P.ex. "CSIDL_COMMON_APPDATA" indique le dossier qui contient les
paramètres d'applications communs à tous les utilisateurs
(p.ex. "C:Documents and SettingsAll UsersApplication Data")


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
batyann811
Publicité
Poster une réponse
Anonyme