Qtで空でないフォルダを削除する方法。
最初にディレクトリの内容を再帰的に削除します。 これを行うためのサンプルコードを含むブログ投稿があります。 関連するコードスニペットを含めました。
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;
}
Edit:上記の回答はQt 4に対するものでした。Qt5を使用している場合、この機能は QDir: :removeRecursively() メソッド。
Qt 5を使用している場合、 QDir :: removeRecursively() があります。