[Langage C] dossier de l'utilisateur courant

Résolu
kaham Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je suis en train de créer un petit programme en C qui demande des informations comptable a l'utilisateur et je les stock dans un fichier. Mais j'aimerais que ce fichier ce trouve dans
C:\Documents and Settings\nom_d_utilisateur_courant\Application Data
de façon a ce que les autres utilisateur ne puisse avoir accès a ce fichier.

Mais je ne connait pas le "nom d'utilisateur" a l'avance. Et je ne veux pas qu'au lancement du programme celui-ci demande a l'utilisateur son "nom d'utilisateur".

Comment puis-je faire pour le connaitre ou directement placer mon fichier dans ce dossier sans le connaitre ce "nom"?
A voir également:

9 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
getcwd donne le répertoire courant, pas le repéertoire utilisateur.
dans une console, regarde avec "set" les différentes variables qui sont définies, tu en trouvera bien une qui te convient.
Moi, j'ai :
%USERPROFILE% qui donne le chemin complet du répertoire utilisateur, donc devrai convenir sous vista ou XP.
%APPDATA% pour le répertoire que tu cherche (rep_utilisateur_\nom_utilisateur\application_data)
pour l'os, tu as %OS% ou la commande "ver.exe" pour plus de détails.
2
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Ah oui désolée j'ai mal lu ^^
0
0x0syscall Messages postés 85 Date d'inscription   Statut Membre Dernière intervention   5
 
en console tu peux récupérer le nom de l'user avec
 echo %username%

tu peux essayer de te base sur ça dans ton programme en C, avec system(),
après c'est sur que sa fait pas très propre :s
0
Brett
 
Oui, ne jamais utiliser system()
Il faut utiliser l'api Win32 (SH)
demander sur le newsgroup professionnel des apis win32 :
news://fr.comp.os.ms-windows.programmation
où cela a souvent été donné (C et C++)
0
kaham Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   5
 
Merci,
%username% est parfais pour le petit logiciel que je veux faire !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kaham Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   5
 
Voila autre problème... selon si l'utilisateur est sur xp ou vista le chemin de l'utilisateur est différant. Il me faudrait donc un moyen de connaitre le système d'exploitation utilisé sur la machine?

j'ai cherché une commande comme echo %username% mais je n'ai rien trouvé.
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Non non ce n'est pas la bonne méthode, il y a une fonction dans la libc qui est prévue pour :
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/getcwd.3.html

L'avantage de la méthode est qu'elle est indépendante de l'OS (elle marchera aussi bien sous linux que sous windows).

Bonne chance
0
kaham Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   5
 
Je ne vois pas en quoi cette fonction va me permettre de connaitre l'os de la machine de plus je n'ai rien compris a son fonctionnement.

Peut tu m'éclairer ?
0
kaham Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   5
 
Merci ça fonctionne !
0
moamea0211
 
Est ce qu'on affecter le resultat a une variable
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Bien sûr, getcwd retourne un pointeur sur la chaîne qui contient le chemin.
0