gpt4 book ai didi

c++ - QtCreator 中的相对路径

转载 作者:太空狗 更新时间:2023-10-29 20:43:33 24 4
gpt4 key购买 nike

我正在将一个控制台程序与一个包含文件名行(相对于当前目录)的配置文件移植到 Qt。当我在 QtCreator 中运行/调试 GUI 时,似乎无法从工作目录加载文件。

假设我的文件系统如下:

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

最佳答案

相对路径是相对于当前工作目录,而不是相对于可执行文件所在的目录,所以需要将当前工作目录更改为可执行文件目录,在main函数后面添加这一行即可:

QDir::setCurrent(QCoreApplication::applicationDirPath());

如果您需要从 Qt Creator 设置当前工作目录:项目->运行->你会看到工作目录文本框

enter image description here

然后从浏览按钮将此路径更改为您的可执行文件位置

关于c++ - QtCreator 中的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14975715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com