我有一些这样的代码:
void MainWindow::saveData()
{
QDir oldDir=QDir::current();//this should return the main executable directory.Since there is no other place in my hole code where i temper with QDir.
QDir sess("Sessions");
if(!oldDir.exists("Sessions"))//if "Sessions" Dir doesn't exist
oldDir.mkdir("Sessions");//create it.
QDir::setCurrent(sess.absolutePath());
//some virtual code inside current Dir, which i didn't implement yet.
QDir::setCurrent(oldDir.absolutePath());//restore old dir
}
当我第一次运行我的应用程序时,代码运行良好。但在第二次运行中,第一次调用QDir::current();
返回“会话”目录而不是主可执行目录,因为它应该在第一次运行中恢复。实际上我确实设法克服了这个通过在代码的 biginning 添加一行,以下内容:
QDir::setCurrent(QCoreApplication::applicationDirPath());
我仍然想知道为什么第一个代码不起作用。已经检查了函数的文档,但什么也没找到。