QT5刪除隱藏目錄+隱藏文件

一、功能需求windows

  刪除一個目錄(包括目錄自己),同時刪除該目錄中全部文件及目錄(含隱藏的函數

二、遇到的問題spa

  qt5中已經有了遞歸刪除目錄的函數--->bool QDir::removeRecursively()blog

  例如:這裏要刪除d:/22/33目錄遞歸

  QDir dir("d:/22/33");
  dir.removeRecursively(); //33目錄以及裏面的內容所有刪除

  可是,若是33目錄中有隱藏的目錄或文件,就會刪除失敗(非隱藏的目錄或文件正常刪除)rem

  那麼,在windows下刪除目錄的命令爲:rmdir /s /q 目錄路徑qt

  直接用Qprocess調用windows命令怎麼樣呢? 呵呵,好像是刪不掉的哦(緣由未知)it

三、解決辦法class

  使用腳本刪除目錄(可行):List

QDir dir("d:/22/33");
    QFileInfo rmInfo("rm.bat");
    if (!rmInfo.exists()) {
        QFile file("rm.bat");
        if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
            QTextStream text(&file);
            text << "rmdir /s /q %1";
        }
        file.close();
    }
 QProcess process;
 process.setWorkingDirectory(QDir::currentPath());
 process.start("rm.bat", QStringList() << dir.absolutePath().replace('/', '\\') ); 
 process.waitForFinished();

  這樣的話,就能夠刪除含有隱藏目錄或文件的目錄了。

相關文章
相關標籤/搜索