Подтвердить что ты не робот

Удаление непустой папки в Qt

Как удалить непустую папку в Qt.

4b9b3361

Ответ 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().