如何使用Qt删除文件夹及其所有内容?

我尝试使用:

QFile::remove();

但似乎它一次只删除一个文件。

最佳答案

对于Qt5 QDir::removeRecursively :

QDir dir("C:\\Path\\To\\Folder\\Here");
dir.removeRecursively();
对于Qt4或更低的版本,您可以使用递归函数来删除每个文件:
bool removeDir(const QString & dirName)
{
    bool result = true;
    QDir dir(dirName);

    if (dir.exists(dirName)) {
        Q_FOREACH(QFileInfo info, dir.entryInfoList(QDir::NoDotAndDotDot | QDir::System | QDir::Hidden  | QDir::AllDirs | QDir::Files, QDir::DirsFirst)) {
            if (info.isDir()) {
                result = removeDir(info.absoluteFilePath());
            } else {
                result = QFile::remove(info.absoluteFilePath());
            }

            if (!result) {
                return result;
            }
        }
        result = dir.rmdir(dirName);
    }
    return result;
}
here所述。

关于c++ - 使用Qt删除文件夹及其所有内容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27758573/

10-11 22:41