QDir.entryList() mit Unterverzeichnissen

Alles rund um die Programmierung mit Qt
Antworten
jasper
Beiträge: 60
Registriert: 3. Februar 2009 11:36
Wohnort: Hamburg

QDir.entryList() mit Unterverzeichnissen

Beitrag 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.
odt
Beiträge: 128
Registriert: 12. August 2010 11:49
Kontaktdaten:

Re: QDir.entryList() mit Unterverzeichnissen

Beitrag 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.
ODT Informatik GmbH, Reto Tschofenig
jasper
Beiträge: 60
Registriert: 3. Februar 2009 11:36
Wohnort: Hamburg

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

Beitrag 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
Antworten