diff -r 2cf3413b6ac9 -r 30b22f7bd009 misc.cpp --- a/misc.cpp Tue Sep 06 15:04:50 2005 +0000 +++ b/misc.cpp Mon Sep 12 19:52:51 2005 +0000 @@ -123,6 +123,45 @@ return d; } +void removeDir(QDir d) +{ + // Traverse directories + d.setFilter( QDir::Dirs| QDir::Hidden | QDir::NoSymLinks ); + const QFileInfoList *dirlist = d.entryInfoList(); + QFileInfoListIterator itdir( *dirlist ); + QFileInfo *fi; + + while ( (fi = itdir.current()) != 0 ) + { + if (fi->fileName() != "." && fi->fileName() != ".." ) + { + if ( !d.cd(fi->fileName()) ) + qWarning ("removeDir() cannot find the directory "+fi->fileName()); + else + { + // Recursively remove subdirs + removeDir (d); + d.cdUp(); + } + } + ++itdir; + } + // Traverse files + d.setFilter( QDir::Files| QDir::Hidden | QDir::NoSymLinks ); + const QFileInfoList *filelist = d.entryInfoList(); + QFileInfoListIterator itfile( *filelist ); + + while ( (fi = itfile.current()) != 0 ) + { + QFile (fi->filePath()).remove(); + + ++itfile; + } + + if (!d.rmdir(d.path())) + qWarning ("removeDir("+d.path()+") failed!"); +} + // returns masked "<" ">" "&" QString quotemeta(const QString &s) {