Namen von Ordner in einem Ordner im Array oder ähnl. speichern
-
Hallo alle zusammen.
Wie kann ich die Namen von Ordnern, die sich in einem Ordner befinden in einem Array oder einem MemoFeld etc. abspeichern. Den Pfad zu den Ordner, holen ich mir mit den DirectoryList Felde heraus.
Ich brauche die Namen der Ordner, damit ich diese später auswerten und weiter verarbeiten kann.
Wäre nett, wenn mir da einer einen Tipp geben könnte, nur das Wort Ordner hilft mir nicht in der Suchmachschine.Gruß
Thorsten
-
TSearchRec, FindFirst(), FindNext() zum suchen der Ordner.
-
jo dane, das hat mich schon was weiter gebracht, habe folgendes gefunden:
TSearchRec ordner; if (FindFirst(drivelist->Directory+"*", faAnyFile, ordner) == 0) { do { if((ordner.Attr & faDirectory) == faDirectory) { // hier Bereich, wo nur verzeichnisse ankommen Memo1->Lines->Add(ordner.Name); } } while (FindNext(ordner) == 0); FindClose(ordner); }nur leider schreibt er mir nicht alle Ordnernamen die in einem Ordner sind in das Memfeld, sondern nur den Namen des aktuellen ordners, wodran kann es liegen.
danke schon mal gruß thorsten
-
Weil Du damit nur innerhalb des angegebenen Vertzeichnisses suchst. Wenn Du auch die Unterverzeichnisse durchsuchen willst, mußt du alle gefundenen Verzeichnisse erneut durchsuchen.
Hier bietet sich der Einsatz einer rekursiven Funktion an.
-
ok, nun ist es soweit, dass ich die frage stellen muss. Was bitte ist eine rekursive funktion? Habe dies schon oft gehört dieses "rekursiv" nur ich kann mir darunter nichts vorstellen. Wäre nett wenn mir das einer erklären könnte.
danke
thorsten
-
Hallo
hier ist mal eine schnell gefundene Erklärung der Rekursion
http://de.wikipedia.org/wiki/Rekursiv
Ich bin sicher, das du auch in einschlägigen Tutorials und Büchern passendes findest.In deinem Fall bedeudet das, das du eine Funktion Search() erstellt, die ein Pfad als Parameter bekommt. Dieser Pfad wird mit FindFirst/FindNext nach Dateien und untergeordneten Verzeichnissen durchsucht. Während Dateien die übliche Behandlung erfahren. wird für Unterverzeichnisse wieder Search() aufgerufen.
bis bald
akari
-
if (FindFirst(drivelist->Directory+"*", faAnyFile, ordner) == 0)
Damit suchst Du doch keine Unterordner!!!
Probier mal faDirectory!