Qt:告诉程序从放置它的同一目录中读取其他文件

Qt: Telling a program to read other files from the same directory as it's placed in

本文关键字:文件 其他 读取 程序 Qt      更新时间:2023-10-16

我有一个程序,它将接受几个不同的文件作为输入。
我所要知道的是,这些文件将与我的程序在同一个文件夹中(并且我知道它们的名称)。

是否有一种方法来写一个路径到一个文件只知道它的名字,它将在同一文件夹的主程序?

如果您确定这些文件与您的程序在同一个文件夹中,您可以使用:

QCoreApplication::applicationFilePath()

您正在从QCoreApplication中寻找这些

QString QCoreApplication:: applicationdir () [static]

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

例如,如果您在C:Qt目录下安装了Qt,并且运行regexp示例,此函数将返回"C:/Qt/examples/tools/regexp"

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

QString QCoreApplication::applicationFilePath()

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

例如,如果您在/usr/local/Qt目录下安装了Qt,并且运行regexp示例,该函数将返回"/usr/local/Qt/examples/tools/regexp/regexp"

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

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