Acces fichier (Chemin relatif) [Résolu]

morganroux 10 Messages postés lundi 14 juin 2004Date d'inscription 23 février 2006 Dernière intervention - 17 févr. 2006 à 14:54 - Dernière réponse : morganroux 10 Messages postés lundi 14 juin 2004Date d'inscription 23 février 2006 Dernière intervention
- 20 févr. 2006 à 09:58
Bonjour à tous,
Je suis en train de développer une appli sous Visual C++.Net 2003. Elle ce présente sous forme d'une boite de dialogue MFC.

J'ai un problème pour acceder à un fichier:
J'ai une fonction qui utilise CFile m_File.Open(Chemin,CFile::ModeRead,NULL);

Le fichier que j'ai à lire ce trouve au même endroit que le .exe de mon appli.
Pour le chemin j'ai donc mis "./Fichier.csv"
Jusque la tout va bien.

Plus loin j'utilise une boite de dialogue pour aller chercher un autre fichier.

Le problème que j'ai c'est que quand je fais appel à cette fonction après avoir ouvert une boite de dialogue, ma fonction ne trouve plus le fichier avec le chemin "./Fichier.csv"

Je ne peux pas utiliser de chemin absolu car je veux que mon appli soit portable d'une machine à l'autre.

Merci d'avance de m'aider. J'espère à très vite ;-)
Afficher la suite 

3 réponses

Répondre au sujet
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 17 févr. 2006 à 20:15
+3
Utile
Ajouter le flag OFN_NOCHANGEDIR à ton sélecteur de fichier.

Il faudrait aussi assurer ta currentDirectory au lancement de ton prog, ne jamais oublier qu'il pourrait ne pas pointer sur le dossier de l'exe (modif du raccourci lanceur par exemple).
Pour cela appelle ceci direct au lancement de ton prog avant d'afficher quoi que ce soit:

void __stdcall AppPathInitialize()
{
char szthis[300];
char* c = szthis + ::GetModuleFileName(0, szthis, 300); while(*c !'\\') c--; *c 0;
::SetCurrentDirectory(szthis);
}

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de BruNews
morganroux 10 Messages postés lundi 14 juin 2004Date d'inscription 23 février 2006 Dernière intervention - 17 févr. 2006 à 20:29
0
Utile
Merci de ta réponse je vais essayer ca lundi.
Commenter la réponse de morganroux
morganroux 10 Messages postés lundi 14 juin 2004Date d'inscription 23 février 2006 Dernière intervention - 20 févr. 2006 à 09:58
0
Utile
Super Merci ca marche très bien !!!
Commenter la réponse de morganroux

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.