[Langage C] dossier de l'utilisateur courant
Résolu
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
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"?
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 Datade 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:
- [Langage C] dossier de l'utilisateur courant
- Dossier appdata - Guide
- Impossible de supprimer un dossier - Guide
- Mettre un mot de passe sur un dossier - Guide
- Dossier démarrage - Guide
- Dossier rar - Guide
9 réponses
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.
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.
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 ^^
en console tu peux récupérer le nom de l'user avec
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
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
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++)
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++)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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é.
j'ai cherché une commande comme echo %username% mais je n'ai rien trouvé.
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
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
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 ?
Peut tu m'éclairer ?