官方文档:
bool QDir::cdUp()
Changes directory by moving one directory up from the QDir's current directory.
Returns true if the new directory exists; otherwise returns false. Note that the logical cdUp() operation is not performed if the new directory does not exist.
See also cd(), isReadable(), exists(), and path().
QT获取当前目录的上一级目录dir->cdUp()
bool QDir::cdUp() 通过从 QDir 的当前目录向上移动一个目录来更改目录。
如果新目录存在则返回真; 否则返回假。
QDir *dir = new QDir(QDir::currentPath());//D:/Project/Core
dir->cdUp();
dir->path();//D:/Project
注意一,如果新目录不存在,则不会执行逻辑 cdUp() 操作。
例如:如果 D:/Project333/Core 这个文件路径不存在,则dir->cdUp()返回false, dir->path()的结果仍然是D:/Project333/Core
QDir *dir = new QDir("D:/Project333/Core");
if(!dir->cdUp())
{
dir->path();//D:/Project333/Core
}
注意二,dir->path() 返回路径不会包含多余的“.”、“…”或多个分隔符。可以使用absolutePath()替代
下面的代码dir->path() 返回 Project 而不是期望的 ./Project
QDir *dir = new QDir(QDir::currentPath());// ./Project/Core
dir->cdUp();
dir->path();// Project
dir->absolutePath();// D:/Project
————————————————
版权声明:本文为CSDN博主「weixin_45483780」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45483780/article/details/122880165
=====================
current() currentPath() The application's working directory
实测:
源文件的路径:
C:\test_qt_path\testpath\untitled\untitled.pro
QString dirapp =QCoreApplication::applicationDirPath();
qDebug()<<"dirapp->path(): 0== "<<dirapp;
QDir *dir = new QDir(QDir::currentPath());
dir->path();
qDebug()<<"dir->path(): 1== "<<dir->path();
dir->cdUp();
qDebug()<<"dir->cdUp(): 2== "<<dir->cdUp();
dir->path();
qDebug()<<"dir->path(): 3== "<<dir->path();
dir->absolutePath();
qDebug()<<"dir->absolutePath(): 4== "<<dir->absolutePath();
结果:
//在 win中,显示的 app的路径,和当前路径不一样。
18:34:31: Starting C:\test_qt_path\testpath\build-untitled-Desktop_Qt_5_14_2_MinGW_64_bit-Debug\debug\untitled.exe ...
//这是 app的路径,即当前路径 QDir::currentPath()。<<在debian中显示:当前路径 与 app路径 一致。
dirapp->path(): 0== "C:/test_qt_path/testpath/build-untitled-Desktop_Qt_5_14_2_MinGW_64_bit-Debug/debug"
dir->path(): 1== "C:/test_qt_path/testpath/build-untitled-Desktop_Qt_5_14_2_MinGW_64_bit-Debug"
dir->cdUp(): 2== true
dir->path(): 3== "C:/test_qt_path"
dir->absolutePath(): 4== "C:/test_qt_path"