Acces fichier (Chemin relatif)

Résolu
morganroux Messages postés 10 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 23 février 2006 - 17 févr. 2006 à 14:54
morganroux Messages postés 10 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 23 février 2006 - 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 ;-)

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 févr. 2006 à 20:15
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++
3
morganroux Messages postés 10 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 23 février 2006
17 févr. 2006 à 20:29
Merci de ta réponse je vais essayer ca lundi.
0
morganroux Messages postés 10 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 23 février 2006
20 févr. 2006 à 09:58
Super Merci ca marche très bien !!!
0
Rejoignez-nous