Qt QML 杂记

Qt 删除文件夹及其中包含的内容

2020-06-17  本文已影响0人  赵者也

qt remove file and dir

本文非原创,参考链接为: Deleting a folder and all its contents with Qt?

对于 Qt 5 版本,QDir 类中提供了 QDir::removeRecursively 接口,可以通过如下方式完成:

QDir dir("C:\\Path\\To\\Folder\\Here");
dir.removeRecursively();

对于 Qt 4 或者更早的版本可以使用递归删除的方法:

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;
}
上一篇下一篇

猜你喜欢

热点阅读