Today I wrote a code to remove a directory and all its sub-directories and files.
bool MyUtil::removeDir(const QString& dirName)
{
bool result = true;
QDir dir(dirName);
if (dir.exists(dirName))
{
Q_FOREACH(QFileInfo info, dir.entryInfoList(QDir::NoDotAndDotDot|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);
}
else
{
QFile file(dirName);
if (file.exists())
result = file.remove();
}
return result;
}//removeDir()
Note: Qt5 will have QTemporaryDir, including a similar removeDir method. I’m just finishing the last fixes on it.
By: David Faure on November 7, 2011
at 10:25 am