Seite 1 von 1
Funktion zum Kopieren von Verzeichnisbäumen
Verfasst: 24. Januar 2009 11:09
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!
Verfasst: 24. Januar 2009 11:21
von Christian81
Schau Dir einfach mal QDir (besonders QDir::entryInfoList()) an.
Verfasst: 24. Januar 2009 11:28
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...
Verfasst: 24. Januar 2009 11:32
von Christian81
Einfach die Funktion rekursiv aufrufen wenn es ein Verzeichnis ist - QFileInfo hat diese Infos ja.
Verfasst: 24. Januar 2009 13:52
von fm94
wie genau meinst du das?
ich kan dir nicht ganz folgen...könntest du vllt. ein beispiel posten??
Verfasst: 24. Januar 2009 18:22
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).
Verfasst: 27. Januar 2009 15:10
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