C++ - ifstream не харесва относителни пътища

Имам проблеми с отварянето на файлове с ifstream

if I do:

ifstream myfile;
    myfile.open("C:/Users/build/windows/Debug/map1.xml");

работи добре, но ако направя относителен път (изпълнимият файл е в Debug/)

ifstream myfile;
    myfile.open("map1.xml");

Няма да намери файла. Някаква помощ? Пропускам ли нещо глупаво?


person will    schedule 21.06.2012    source източник
comment
Откъде стартирате приложението?   -  person cklab    schedule 21.06.2012
comment
Има голям шанс работната директория на приложението да не е тази, в която се намира map1.xml.   -  person Timo Geusch    schedule 21.06.2012
comment
стартирам го във Visual Studio, но имам същия резултат, ако навигирам до папката Debug/ и щракна два пъти върху изпълнимия файл   -  person will    schedule 21.06.2012
comment
VS2013 вече зачита идеята за относителни пътища, когато използва ifstream и отстраняване на грешки   -  person David    schedule 19.02.2014


Отговори (1)


Не, нямаме C++ код. Целият код е на c#. Dlls не са системни dlls, те са dlls (домейн).
person Community    schedule 21.06.2012
comment
въздишка, предполагам, че изпълнимият файл не се актуализира, когато винаги спирах в програмата за отстраняване на грешки или нещо подобно, сега, ако просто създам и го стартирам от директорията за отстраняване на грешки (като щракна два пъти върху нея в Windows Explorer), всичко работи :/ Всяка настройка, която мога промяна, за да накара Visual Studio да го стартира от директорията debug/ по време на отстраняване на грешки и т.н.? - person will; 21.06.2012
comment
nvm, намери го. Жалко, че не мога да автоматизирам тази промяна чрез cmake, тъй като това е, което използвам за генериране на файла на проекта VS :/ - person will; 21.06.2012
comment
@will Ако стартирате VS от тази директория, няма ли тя да бъде работната директория, когато програмата ви се изпълнява? Ако е така, създайте пакетен файл (или връзка?) и задайте текущата директория на C:/Users/build/windows/Debug - person Mark; 09.08.2012