Seite 1 von 1

QDir.entryList() mit Unterverzeichnissen

Verfasst: 31. März 2014 09:02
von jasper
Liebe Leute,
ich habe die folgende Verzeichnisstruktur und möchte aus dieser alle Dateinamen auslesen:

/media/Flash/daten/2012/01/*.csv
/media/Flash/daten/2012/02/*.csv
/media/Flash/daten/2012/ usw..
/media/Flash/daten/2013/01/*.csv
/media/Flash/daten/2013/02/*.csv
/media/Flash/daten/2013/usw....

Der Befehl QDir.entryList("/media/Flash/daten") liefert mir nur die Unterverzeichnisse, ich brauche aber die Dateinamen *.csv
aus den Unterverzeichnissen.

Frage:
Muss ich jetzt die Unterverzeichnisse manuell durchsuchen oder gibt es eine einfachere Möglichkeit?

Ich verwende QT-4.6.3.
Danke.

Re: QDir.entryList() mit Unterverzeichnissen

Verfasst: 31. März 2014 10:40
von odt
Hallo Jasper
Meines Wissens bietet Qt kein rekursives FindFile. Aber dies "manuel" zu machen, ist keine Hexerei.
Viele Grüsse
Reto

Code: Alles auswählen

	void FileSystem::FindFiles(const QString& directory, std::function<void (const QFileInfo&)> handler, bool recursive)
	{
		QDir dir( directory );
		if( !dir.exists() )
			throw Exception( "Directory doesnt exists" );
		foreach( QFileInfo fileinfo, dir.entryInfoList( QDir::AllEntries | QDir::NoDotAndDotDot ) ){
			if( fileinfo.isFile() ){
				handler( fileinfo );
			} else if( fileinfo.isDir() && recursive ){
				FindFiles( directory + "/" + fileinfo.fileName(), handler, recursive );
			}
		}
	}
PS: Das Beispiel ist Qt5 und C++11.

Re: QDir.entryList() mit Unterverzeichnissen[gelöst]

Verfasst: 31. März 2014 13:35
von jasper
Hallo Odt,
Danke für die Antwort- es hätte ja sein können dass es diese Funktionalität schon gibt.

Gruß

Jasper