Qt 在程序运行目录的上一个目录下创建新的文件夹

官方文档:

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"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值