Récupérer l'emplacement d'ou est exécuté un programme [C/C++] - Programmation
Marsh Posté le 06-03-2002 à 18:47:45
Ben si le fichier que tu veux est dans le même rep que ton exe, suffit d'ouvrir le fichier grâce à son nom + extension. Pas besoin de préciser plus, le prog va alors chercher ton fichier dans le répertoire où il se trouve.
Marsh Posté le 06-03-2002 à 18:50:30
Utilises getcwd. Ou mieux, si tu es sur un système GNU, utilises get_current_working_dir_name, c'est plus pratique (on s'affranchit des problèmes de longueur maximale).
Edit : ça ne sert à rien ce que j'ai dit.
À la réflexion, je crois que ça n'est pas facilement faisable, peut-être justement parce que c'est fortement déconseillé.
[jfdsdjhfuetppo]--Message édité par Jar Jar--[/jfdsdjhfuetppo]
Marsh Posté le 06-03-2002 à 18:51:09
Alload a écrit a écrit : Pas besoin de préciser plus, le prog va alors chercher ton fichier dans le répertoire où il se trouve. |
Non. Par défaut, il ira chercher dans le répertoire d'où il est lancé.
Marsh Posté le 06-03-2002 à 20:01:25
alload : non je ne souhaite pas faire de cette façon car je voudrais que l'exécution du programme soit indépendante du lieu ou il se trouve.
Jarjar : merci ca marche très bien getcwd.
Marsh Posté le 06-03-2002 à 20:15:10
tu peut aussi utilisé les arguments de ton prog,
int main(int argc, char **argv)
{
}
ton argv[0] doit être du style "c:\bob\bob.exe" si tu veux la path de ton prog, tu enlève la dernière partie avec le exe
Marsh Posté le 06-03-2002 à 20:37:15
en C++Builder y a ParamStr(0) et Application->ExeName qui renvoie le chemin d'accès du programme (répertoire récupérable avec la fonction ExtractFilePath(Application->ExeName);
Marsh Posté le 07-03-2002 à 09:06:58
En BC3 ou 5, j'utilise GetModuleFileName(). On enlève le .EXE et met ce qu'on veut au bout.
Marsh Posté le 06-03-2002 à 18:45:16
Pour simplifier mon programme, je souhaiterai lire un fichier (qui aura toujours le même nom) qui se trouve dans le même répertoire que l'exécutable.
Il faudrait juste que j'obtienne le chemin de l'exécutable pour faire ce que je souhaite mais vu que je sais pas comment récupérer cette donnée.
Merci de votre aide