2
我正在将一个配置文件(包含文件名(相对于当前目录))的配置文件移植到Qt。当我在QtCreator中运行/调试GUI时,似乎无法从工作目录加载文件。QtCreator中的相对路径
假设我的文件系统如下:
C:/MyProjectSource
C:/MyProjectSource-Desktop-Debug // <-- created by QtCreator
C:/MyProjectSource-Desktop-Debug/debug/MyProgram.exe // <- my program
C:/MyProjectSource-Desktop-Debug/debug/params.txt // <- program's config
C:/MyProjectSource-Desktop-Debug/debug/cfg/file1.txt // <- extra file
C:/MyProjectSource-Desktop-Debug/debug/cfg/file2.txt // <- extra file
params.txt看起来像
# other setting
...
cfg/file1.txt # at this line, program crash, saying cannot open file
cfg/file2.txt
...
# other setting
代码读取FILE1.TXT
std::ifstream ifs(filename); // <-- @runtime, filename = 'cfg/file1.txt'
if (!ifs)
{
// failed inside QtCreator, but fine when start from explorer
EMSG_OPENFILE(filename);
exit(-1);
}
基准:不改变控制台程序如果可能的话。那么,如何告诉QtCreator了解相对路径?或者我应该在params.txt内强制执行绝对路径?谢谢。
平台:QtCreator 2.6.1,Qt4.8,MinGW64,Win 7的