3

我有一个程序将几个不同的文件作为输入。
我只知道这些文件将与我的程序位于同一个文件夹中(而且我知道它们的名称)。

有没有办法写一个文件的路径只知道它的名字,并且它将与主程序在同一个文件夹中?

4

2 回答 2

4

如果您确定文件位于程序的同一文件夹中,则可以使用:

QCoreApplication::applicationFilePath()
于 2014-05-18T20:38:32.883 回答
3

您正在从 QCoreApplication 中寻找这些。

QString QCoreApplication::applicationDirPath() [静态]

返回包含应用程序可执行文件的目录。

例如,如果您在 C:\Qt 目录中安装了 Qt,并且您运行 regexp 示例,则此函数将返回“C:/Qt/examples/tools/regexp”。

在 Mac OS X 上,这将指向实际包含可执行文件的目录,该目录可能位于应用程序包内(如果应用程序已捆绑) 警告:在 Linux 上,此函数将尝试从 /proc 文件系统获取路径。如果失败,则假定 argv[0] 包含可执行文件的绝对文件名。该函数还假定应用程序没有更改当前目录。

QString QCoreApplication::applicationFilePath() [静态]

返回应用程序可执行文件的文件路径。

例如,如果您已将 Qt 安装在 /usr/local/qt 目录中,并运行 regexp 示例,则此函数将返回“/usr/local/qt/examples/tools/regexp/regexp”。

警告:在 Linux 上,此函数将尝试从 /proc 文件系统获取路径。如果失败,则假定 argv[0] 包含可执行文件的绝对文件名。该函数还假定应用程序没有更改当前目录。

根据您的确切用例,您可以使用其中一个,如果您希望获得可执行路径+附加的其他文件,则可能是前者。

于 2014-05-18T20:37:49.343 回答