当我的应用程序从Windows的自动启动开始,Qt是不能够打开它。 导致此错误是QDir().absoluteFilePath("settings.cnf")
返回的路径C:/Windows/system32/settings.cnf
即使我的文件在我的工作目录。
是否有人知道什么方法我必须调用,以获得正确的道路?
当我的应用程序从Windows的自动启动开始,Qt是不能够打开它。 导致此错误是QDir().absoluteFilePath("settings.cnf")
返回的路径C:/Windows/system32/settings.cnf
即使我的文件在我的工作目录。
是否有人知道什么方法我必须调用,以获得正确的道路?
使用默认的构造函数的QDir()默认为当前工作目录,它可以是任何东西,从用户或系统启动的应用程序依赖。 对于UI的应用程序,这是一个平时应该完全忽略的路径。
要访问数据旁边的应用程序二进制文件,使用QCoreApplication :: applicationDirPath() 。 这通常用于与程序安装全局只读数据。
对于用户的可写配置设置和高速缓存的数据,使用QStandardPaths (QT 5)或QDesktopServices :: storageLocation() (QT 4)。
有一个GUI程序的工作目录没有特别的理由来定义。 由于相对路径是相对于工作目录,使用相对路径的impies良好限定的和有意义的工作目录。
现在,你真的想寻找在同一个目录下的可执行文件。 所以,正确的做法是找到完整的可执行文件路径,去掉文件名,并添加您的文件名。 现在,你有充分的文件路径。
一般来说,工作目录仅适用于控制台应用程序有意义。 因此,只有在一个控制台应用程序使用相对路径。