Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recupérer le chemin du dossier de l'utilisateur

2 réponses
Avatar
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 ?

2 réponses

Avatar
Jean-Claude BELLAMY
"batyann811" a écrit dans le message de
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
Avatar
batyann811