[C++] QT中QDir的基本功能(文件夹的增删查改)

该文演示了在QT5.15.2中使用QDir和QTextEdit进行文件查找,包括所有文件、文件夹、特定后缀文件的搜索。此外,还详细展示了如何创建、重命名及删除文件夹的操作,如创建多级文件夹、重命名现有文件夹以及删除文件夹的步骤。

QT版本:5.15.2
需要包含的头文件如下

#include<qdebug.h>
#include<qdir.h>
#include<qtextedit.h>

一、文件的查找

    //使用QTextEdirt输出信息
    QTextEdit* pText01 = new QTextEdit(this);
    pText01->setGeometry(50, 50, 500, 300);
    pText01->insertPlainText(QStringLiteral("当前路径: %1\n").arg(QDir::currentPath()));
    //初始化QDir路径
    QDir pDirSearch(QDir::currentPath());
    QStringList pStrList;
    
    //1.1 搜索所有文件与文件夹
    pStrList = pDirSearch.entryList();
    pText01->insertPlainText(QStringLiteral("--所有文件与文件夹--\n"));
    for each (QString var in pStrList)
    {
        pText01->insertPlainText(QStringLiteral("  %1\n").arg(var));
    }
    pStrList.clear();
    
    //1.2 搜索所有文件夹
    pStrList = pDirSearch.entryList(QDir::Filter::AllDirs);
    pText01->insertPlainText(QStringLiteral("--所有文件夹--\n"));
    for each (QString var in pStrList)
    {
        pText01->insertPlainText(QStringLiteral("  %1\n").arg(var));
    }
    pStrList.clear();

    //1.3 搜索所有文件
    pStrList = pDirSearch.entryList(QDir::Filter::Files);
    pText01->insertPlainText(QStringLiteral("--所有文件--\n"));
    for each (QString var in pStrList)
    {
        pText01->insertPlainText(QStringLiteral("  %1\n").arg(var));
    }
    pStrList.clear();
    
    //1.4 搜索所有txt后缀文件
    pStrList = pDirSearch.entryList(QStringList("*.txt"), QDir::Filter::Files, QDir::SortFlag::Size);
    pText01->insertPlainText(QStringLiteral("--所有.txt文件--\n"));
    for each (QString var in pStrList)
    {
        pText01->insertPlainText(QStringLiteral("  %1\n").arg(var));
    }
    pStrList.clear();

软件目录下的文件如下
软件目录
搜索到的文件如下
查找所有文件文件夹与文件的筛选

二、文件的增改删

这里创建多级文件夹并不需要自己写递归函数,而是直接指定路径,再mkpath即可

	//2.1 创建多级文件夹
    pText01->insertPlainText(QStringLiteral("--创建文件夹--\n"));
    QDir pDirCreate(QStringLiteral("./子文件夹/QWER/123"));
    if (!pDirCreate.exists())
    {
        pText01->insertPlainText(QStringLiteral("  创建文件夹成功!\n"));
        pDirCreate.mkpath("./");
    }
    
    //2.2 重命名文件夹
    pText01->insertPlainText(QStringLiteral("--重命名文件夹--\n"));
    QDir pDirRename(QStringLiteral("./子文件夹/QWER/123"));
    if (pDirRename.exists())
    {
        QString oldF = pDirRename.absolutePath() + "/";
        QString newF = QStringLiteral("../456");
        bool bRet = pDirRename.rename(oldF, newF);
        if(bRet)
            pText01->insertPlainText(QStringLiteral("  重命名文件夹成功!\n"));
    }
    
    //2.3 删除文件夹
    pText01->insertPlainText(QStringLiteral("--删除文件夹--\n"));
    QDir pDirDelete(QStringLiteral("./子文件夹/QWER/456"));
    if (!pDirDelete.exists())
    {
        pText01->insertPlainText(QStringLiteral("  删除文件夹失败,文件夹不存在!\n"));
    }
    else
    {
        pDirDelete.rmpath("./");
        pText01->insertPlainText(QStringLiteral("  删除文件夹成功!\n"));
    }

执行结果如下
文件的增改删

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值