Windows的自动启动:应用程序目录似乎是C:/窗/ SYSTEM32 /(Windows-Aut

2019-10-19 05:15发布

当我的应用程序从Windows的自动启动开始,Qt是不能够打开它。 导致此错误是QDir().absoluteFilePath("settings.cnf")返回的路径C:/Windows/system32/settings.cnf即使我的文件在我的工作目录。

是否有人知道什么方法我必须调用,以获得正确的道路?

Answer 1:

使用默认的构造函数的QDir()默认为当前工作目录,它可以是任何东西,从用户或系统启动的应用程序依赖。 对于UI的应用程序,这是一个平时应该完全忽略的路径。

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

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



Answer 2:

有一个GUI程序的工作目录没有特别的理由来定义。 由于相对路径是相对于工作目录,使用相对路径的impies良好限定的和有意义的工作目录。

现在,你真的想寻找在同一个目录下的可执行文件。 所以,正确的做法是找到完整的可执行文件路径,去掉文件名,并添加您的文件名。 现在,你有充分的文件路径。

一般来说,工作目录仅适用于控制台应用程序有意义。 因此,只有在一个控制台应用程序使用相对路径。



文章来源: Windows-Autostart: Application directory seems to be C:/Windows/system32/