2013-02-06 5 views
1

Dans le projet sur lequel je travaille, pendant l'exécution, je dois ouvrir un certain fichier et le lirechemin relatif n'a pas pu être ouvert

std::ifstream vSettings(".\\..\\..\\Data\\data.xml"); 
if (vSettings.good()) 
{ 


    //file found ,work with it 

} 

Je ne suis jamais vrai pour l'appel good() ci-dessus. J'ai vérifié manuellement que le fichier existe bien par rapport au fichier .exe.

le chemin vers exe est le principal \ \ proj \ bin \ chemin Debug-Win32.the pour fichier principal \ proj \ Data.When en cours d'exécution dans l'ordinateur de l'utilisateur dans le répertoire sera installé relativement au .exe

Je travaille en mode débogage et le chemin est tel qu'il se présente du point de vue du répertoire "bin".

Des conseils?

+6

Le répertoire de travail peut-être pas le répertoire où réside l'exécutable. –

+0

Ce premier point me semble faux .. combien de répertoires vous voulez changer en arrière? si vous ajoutez un point supplémentaire comme '" .. \\ .. \\ .. \\ Data \\ data.xml "' il ira trois répertoires à partir du chemin actuel – SamGamgee

+0

@SamGamgee - le chemin vers exe est \ main \ proj \ bin \ Debug-Win32.le chemin vers le fichier main \ proj \ Data – Yakov

Répondre

2

Accédez aux paramètres de débogage

enter image description here

et changer le $ (ProjectDir) à $ (OutDir), et il devrait se comporter comme vous attendez