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


1、功能需求

  刪除一個目錄(包括目錄本身),同時刪除該目錄中所有文件及目錄(含隱藏的

2、遇到的問題

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

  例如:這里要刪除d:/22/33目錄

  QDir dir("d:/22/33");
  dir.removeRecursively(); //33目錄以及里面的內容全部刪除

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

  那么,在windows下刪除目錄的命令為:rmdir /s /q 目錄路徑

  直接用Qprocess調用windows命令怎么樣呢? 呵呵,好像是刪不掉的哦(原因未知)

3、解決辦法

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

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();

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM