misc.cpp
changeset 163 30b22f7bd009
parent 158 a33a2bdd8299
child 164 d442a66e9121
     1.1 --- a/misc.cpp	Tue Sep 06 15:04:50 2005 +0000
     1.2 +++ b/misc.cpp	Mon Sep 12 19:52:51 2005 +0000
     1.3 @@ -123,6 +123,45 @@
     1.4  	return d;
     1.5  }
     1.6  
     1.7 +void removeDir(QDir d)
     1.8 +{
     1.9 +	// Traverse directories
    1.10 +	d.setFilter( QDir::Dirs| QDir::Hidden | QDir::NoSymLinks );
    1.11 +	const QFileInfoList *dirlist = d.entryInfoList();
    1.12 +	QFileInfoListIterator itdir( *dirlist );
    1.13 +	QFileInfo *fi;
    1.14 +
    1.15 +	while ( (fi = itdir.current()) != 0 ) 
    1.16 +	{
    1.17 +		if (fi->fileName() != "." && fi->fileName() != ".." )
    1.18 +		{
    1.19 +			if ( !d.cd(fi->fileName()) ) 
    1.20 +				qWarning ("removeDir() cannot find the directory "+fi->fileName());
    1.21 +			else 
    1.22 +			{
    1.23 +				// Recursively remove subdirs
    1.24 +				removeDir (d);
    1.25 +				d.cdUp();
    1.26 +			}
    1.27 +		}	
    1.28 +		++itdir;
    1.29 +	}		
    1.30 +	// Traverse files
    1.31 +	d.setFilter( QDir::Files| QDir::Hidden | QDir::NoSymLinks );
    1.32 +	const QFileInfoList *filelist = d.entryInfoList();
    1.33 +	QFileInfoListIterator itfile( *filelist );
    1.34 +
    1.35 +	while ( (fi = itfile.current()) != 0 ) 
    1.36 +	{
    1.37 +		QFile (fi->filePath()).remove();
    1.38 +		
    1.39 +		++itfile;
    1.40 +	}	
    1.41 +
    1.42 +	if (!d.rmdir(d.path()))
    1.43 +		qWarning ("removeDir("+d.path()+") failed!");
    1.44 +}		
    1.45 +
    1.46  // returns masked "<" ">" "&"
    1.47  QString quotemeta(const QString &s)
    1.48  {