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

10 c++ qt

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

我试过用:

QFile::remove();
Run Code Online (Sandbox Code Playgroud)

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

Iul*_*liu 29

因为Qt5QDir::removeRecursively:

QDir dir("C:\\Path\\To\\Folder\\Here");
dir.removeRecursively();
Run Code Online (Sandbox Code Playgroud)

对于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;
}
Run Code Online (Sandbox Code Playgroud)

如规定在这里.

  • 我删除了整个目录包含大约700个文件的源代码,幸好我前一天致力于svn.`QDir :: NoDotAndDotDot`非常重要,在其他地方它会跳到一个高度级然后它会删除那里的一切 (3认同)