Funktion zum Kopieren von Verzeichnisbäumen

Alles rund um die Programmierung mit Qt
Antworten
fm94
Beiträge: 14
Registriert: 24. Januar 2009 08:53
Kontaktdaten:

Funktion zum Kopieren von Verzeichnisbäumen

Beitrag von fm94 »

Hi @all,

ich suche eine Funktion, die es ermöglicht, die Namen ALLER Verzeichnisse und Verzeichnisse eines Pfades in eine QStringList oder vergleichbares zu speichern.

Wie könnte ich das anstellen, bzw. hat vllt. schon jemand sone Funktion??

Würde mich über Antwort freuen...
Danke!
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Schau Dir einfach mal QDir (besonders QDir::entryInfoList()) an.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
fm94
Beiträge: 14
Registriert: 24. Januar 2009 08:53
Kontaktdaten:

Beitrag von fm94 »

ja ich kenn den befehl...
aba das zeigt ja nur die unterverzeichnisse des pfades an...nicht die unterverzeichnisse der unterverzeichnisse usw...
vllt. ginge das iwie mit einer schleife, aber ich steh irgendwie aufm schlauch...vllt könnt ja mal jemand sone funktion schreiben, falls es möglich ist...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Einfach die Funktion rekursiv aufrufen wenn es ein Verzeichnis ist - QFileInfo hat diese Infos ja.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
fm94
Beiträge: 14
Registriert: 24. Januar 2009 08:53
Kontaktdaten:

Beitrag von fm94 »

wie genau meinst du das?
ich kan dir nicht ganz folgen...könntest du vllt. ein beispiel posten??
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Schau dich mal per Wikipedia/google um was Rekursion bedeutet.

Knapp zusammengefasst:
Schreib dir eine Funktion, ala "copy(source, destination)".
Falls source ein file ist, kopier es nach destination (QFile::copy()).
Falls source ein dir ist, erstelle in destination das dir.
Dann rufe für jeden Eintrag in QDir::entryInfoList() copy() auf, also die Funktion, die du grad implementierst (das nennt man dann Rekursion).
NoRulez
Beiträge: 208
Registriert: 19. Juni 2007 15:43

Beitrag von NoRulez »

Eine Rekursion ist vereinfacht nichts anderes als das sich eine Funktion und bestimmten Umständen selbst nochmals aufruft.
Hier ein Beispiel:

Code: Alles auswählen

void TuWas(const QString &dir) {
    newDir =...entryInfoList();
    if(isDir(newDir))
         TuWas(newDir);      // <--- Hier beginnt die Rekursion
}
Lg NoRulez
Antworten