最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用QDir實現刪除選定文件目錄下的空文件夾

 更新時間:2022年08月01日 15:40:25   作者:wendy_ya  
這篇文章主要為大家詳細介紹了如何利用QDir實現刪除選定文件目錄下的空文件夾功能,文中的示例代碼講解詳細,感興趣的小伙伴可以動手嘗試一下

一、項目介紹

本文介紹利用QDir刪除選定文件目錄下的所有空文件夾。

二、項目基本配置

新建一個Qt案例,項目名稱為“DelTest”,基類選擇“QWidget”,點擊選中創(chuàng)建UI界面復選框,完成項目創(chuàng)建。

三、UI界面設置

UI界面如下:

序號名稱類型屬性
pbn_delQPushButtontext:請選擇要刪除的目錄

四、主程序實現

4.1 widget.h頭文件

頭文件中只需聲明按鈕點擊槽函數:

private slots:
    void on_pbn_del_clicked();

4.2 widget.cpp源文件

定義函數checkFileOrDirExist檢查目錄是否存在:

bool checkFileOrDirExist(const QString qstrFileDirOrPath)
{
    bool bRet = false;
    QFileInfo objFileInfo(qstrFileDirOrPath);
    if(objFileInfo.isFile())
    {
        bRet = objFileInfo.exists();
    }
    else if(objFileInfo.isDir())
    {
        bRet = objFileInfo.exists();
    }
    else
    {
        bRet = false;
    }

    return bRet;
}

定義clearEmptyFolder用于刪除空的文件夾,返回的類型為bool類型若為true則表示刪除成功,若為false則表示刪除失?。?/p>

/**************************************************
 * 功能:刪除空的文件夾
 * 輸入參數:
 *      qstrDirPath:文件夾路徑
 * 返回值:
 *      bool:true -- 刪除成功,false -- 刪除失敗
 * **************************************************/
bool clearEmptyFolder(const QString& qstrDirPath)
{
    bool bRet = true;

    do
    {
        if(!checkFileOrDirExist(qstrDirPath))
        {
            bRet = true;
            break;
        }

        QDir qdrPath(qstrDirPath);
        qdrPath.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden); //設置過濾器
        QFileInfoList lstFileInfo = qdrPath.entryInfoList();   //獲取所有文件信息
        foreach(QFileInfo objFileInfo, lstFileInfo)
        {
            if(objFileInfo.isDir())
            {
                QString qstrSubFilePath = objFileInfo.absoluteFilePath();
                clearEmptyFolder(qstrSubFilePath);

                QDir qdrSubPath(qstrSubFilePath);
                qdrSubPath.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden);
                QFileInfoList qlstFileInfo =  qdrSubPath.entryInfoList();
                if(qlstFileInfo.count() <= 0)
                {
                    qDebug()<<QString("remove empty dir: %1.").arg(qstrSubFilePath);
                    qdrSubPath.rmdir(qstrSubFilePath);
                }
            }
        }

    }while(0);

    return bRet;
}

按鈕點擊槽函數:

void Widget::on_pbn_del_clicked()
{
    //選擇文件目錄
    QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
                                                    "",
                                                    QFileDialog::ShowDirsOnly
                                                    | QFileDialog::DontResolveSymlinks);
    qDebug()<<dir;
    bool isok=clearEmptyFolder(dir);
    if(isok)
        QMessageBox::information(this,"success","刪除完成");
    else
        QMessageBox::information(this,"error","錯誤");
}

五、效果演示

完整效果如下:

到此這篇關于利用QDir實現刪除選定文件目錄下的空文件夾的文章就介紹到這了,更多相關QDir刪除空文件夾內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關文章

  • 一篇文章帶你使用C語言編寫內核

    一篇文章帶你使用C語言編寫內核

    內核是操作系統(tǒng)最核心的內容,主要提供硬件抽象層、磁盤及文件系統(tǒng)控制、多任務等功能,由于其涉及非常廣泛的計算機知識,很少被人們所熟悉,因而披上了一層神秘的面紗
    2021-08-08
  • C++實現字符串和整數的相互轉換

    C++實現字符串和整數的相互轉換

    這篇文章主要為大家詳細介紹了C++實現字符串和整數的相互轉換的方法,文中的示例代碼講解詳細,對我們學習C++有一定的幫助,需要的可以參考一下
    2023-01-01
  • c++ vector造成的內存泄漏問題

    c++ vector造成的內存泄漏問題

    這篇文章主要介紹了c++ vector造成的內存泄漏問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • c語言隨機數函數示例

    c語言隨機數函數示例

    這篇文章主要介紹了c語言隨機數函數示例,需要的朋友可以參考下
    2014-04-04
  • Linux中使用C語言實現基于UDP協(xié)議的Socket通信示例

    Linux中使用C語言實現基于UDP協(xié)議的Socket通信示例

    這篇文章主要介紹了Linux中使用C語言實現基于UDP協(xié)議的socket通信示例,服務器端與客戶端的功能都非?;A,需要的朋友可以參考下
    2016-03-03
  • C++中的單例模式介紹

    C++中的單例模式介紹

    單例模式也稱為單件模式、單子模式,可能是使用最廣泛的設計模式。其意圖是保證一個類僅有一個實例,并提供一個訪問它的全局訪問點,該實例被所有程序模塊共享
    2013-03-03
  • C/C++?Qt?運用JSON解析庫的實例代碼

    C/C++?Qt?運用JSON解析庫的實例代碼

    這篇文章主要介紹了C/C++?Qt?運用JSON解析庫的相關知識,通過代碼依次解析這個json文件中的每一個參數,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • C++?實現單鏈表創(chuàng)建、插入和刪除

    C++?實現單鏈表創(chuàng)建、插入和刪除

    這篇文章主要介紹了C++?實現單鏈表創(chuàng)建、插入和刪除方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vs2022重新編譯opencv-python?cuda加速時報錯的問題解決

    vs2022重新編譯opencv-python?cuda加速時報錯的問題解決

    本文主要介紹了vs2022重新編譯opencv-python?cuda加速時報錯,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • 從匯編看c++中默認構造函數的使用分析

    從匯編看c++中默認構造函數的使用分析

    c++中,如果為一個類沒有明確定義一個構造函數,那么,編譯器就會自動合成一個默認的構造函數。下面,通過匯編程序,來看一下其真實情況
    2013-05-05

最新評論

洞口县| 克什克腾旗| 抚松县| 南部县| 宁陕县| 聂拉木县| 聂拉木县| 南漳县| 卓尼县| 丹凤县| 沾化县| 玉溪市| 平乐县| 彩票| 苍山县| 和田市| 雅江县| 怀宁县| 清远市| 富源县| 博客| 河北省| 和顺县| 旌德县| 方正县| 柳林县| 台东县| 玉门市| 巴楚县| 泾川县| 胶南市| 白山市| 夏河县| 五河县| 湟源县| 化州市| 武清区| 长汀县| 邵阳市| 错那县| 赤城县|