qt5中已经有了递归删除目录的函数—->bool QDir::removeRecursively()

    例如:这里要删除d:/22/33目录

    1. QDir dir("d:/22/33");
    2. dir.removeRecursively(); // 33目录以及里面的内容全部删除

    但是,如果33目录中有隐藏的目录或文件,就会删除失败(非隐藏的目录或文件正常删除)
    那么,在windows下删除目录的命令为:rmdir /s /q 目录路径
    直接用Qprocess调用windows命令怎么样呢? 呵呵,好像是删不掉的哦(原因未知)

    解决办法
    使用脚本删除目录(可行):

    1. QDir dir("d:/22/33");
    2. QFileInfo rmInfo("rm.bat");
    3. if (!rmInfo.exists()) {
    4. QFile file("rm.bat");
    5. if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
    6. QTextStream text(&file);
    7. text << "rmdir /s /q %1";
    8. }
    9. file.close();
    10. }
    11. QProcess process;
    12. process.setWorkingDirectory(QDir::currentPath());
    13. process.start("rm.bat", QStringList() << dir.absolutePath().replace('/', '\\'));
    14. process.waitForFinished();

    这样的话,就可以删除含有隐藏目录或文件的目录了。