去除Qt的非空文件夹(Removing a non empty folder in Qt)

2019-06-25 12:13发布

如何在Qt中删除一个非空文件夹。

Answer 1:

递归先删除该目录中的内容。 这里是一个博客帖子有示例代码正是这样做的。 我已经包含了相关的代码片段。

bool removeDir(const QString & dirName)
{
    bool result = true;
    QDir dir(dirName);

    if (dir.exists()) {
        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 = QDir().rmdir(dirName);
    }
    return result;
}

编辑 :以上答案是Qt的4.如果您使用的是Qt 5,那么这个功能是内置的QDir与一个QDir :: removeRecursively()方法。



Answer 2:

如果你正在使用Qt 5,有一个QDir :: removeRecursively() 。



文章来源: Removing a non empty folder in Qt
标签: qt qt4