Windows-Autostart:应用程序目录似乎是C:/ Windows / system32 /

时间:2014-01-12 14:22:02

标签: windows qt autostart qdir

当我的应用程序从Windows的自动启动启动时,Qt无法打开它。 导致此问题的错误是QDir().absoluteFilePath("settings.cnf") 即使我的文件位于我的工作目录中,也会返回路径C:/Windows/system32/settings.cnf

有人知道我必须打电话才能找到正确的道路吗?

2 个答案:

答案 0 :(得分:1)

使用默认构造函数QDir()默认为当前工作目录,可以是任何内容,具体取决于用户或系统启动应用程序的位置。对于UI应用程序,这通常应该完全忽略。

要访问应用程序二进制文件旁边的数据,请使用QCoreApplication::applicationDirPath()。这通常用于随程序安装的全局只读数据。

对于用户可写配置设置和缓存数据,请使用QStandardPaths(Qt 5)或QDesktopServices::storageLocation()(Qt 4)。

答案 1 :(得分:1)

没有特别的原因可以定义GUI程序的工作目录。由于相对路径是相对于工作目录的,因此使用相对路径会产生一个定义明确且有意义的工作目录。

现在,您确实希望在与可执行文件相同的目录中查找文件。因此,正确的方法是找到可执行文件的完整路径,删除文件名,并附加文件名。现在您拥有该文件的完整路径。

作为一般规则,工作目录仅对控制台应用程序有意义。因此,只能在控制台应用程序中使用相对路径。