Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - FindFirst Rekursiv
Maisinator - Do 19.11.09 20:21
Titel: FindFirst Rekursiv
Hallo,
ich möchte die größe eines Ordners auslesen. Habe im Internet schon herausgefunden, dass man das mit FindFirst, FindNext usw... machen muss. An sich ja kein Problem. Nur wie bekomme ich auch die Unterordner gezählt? Ich habe im Internet gelesen, dass man das REKURSIV machen muss. Hab aber leider keien Ahnung, was ich darunter zu verstehen habe. Kann mir jemand das vlt. erklären? (Möglichst mit Beispiel!)
DANKE!
Moderiert von
Narses: Topic aus VCL (Visual Component Library) verschoben am Mo 23.11.2009 um 09:47
Sinspin - Do 19.11.09 21:14
Wie du schon herausgefunden hast funktioniert das ganze über Rekursion.
Das bedeutet das sich eine Procedure solange immer wieder selber aufruft bis eine bestimmte Bedingung erfüllt ist. In deinem Fall ist die so genannte Abbruchbedingung das keine Unterverzeichnis im aktuellen Verzeichnis vorhanden ist.
In Pseudocode könnte das ganze so aussehen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| function GetFolderSize(AStartPath: string): Int64; var sr: TSearchRec; begin result := 0; gib mir ersten Eintrag im Verzeichnis (findFirst(sr, ...)) wenn einen Eintrag gefunden beginne fußgesteuerte Schleife ist gefundener Eintrag eine Datei : result := result + größe der Datei if gefundener Eintrag ein Verzeichnis : result := result + GetFolderSize(AStartPath+'\'+Name von Verzeichnis) ende der Schleife : beende wenn kein weiterer Eintrag in Verzeichniss ist (FindNext(sr)) end; |
Moderiert von
Klabautermann: Code- durch Delphi-Tags ersetzt.
Delete - Do 19.11.09 23:18
Und mit der Forensuche hat sich nichts dazu gefunden? Kann ich kaum glauben. ;)
Maisinator - Fr 20.11.09 16:33
Luckie hat folgendes geschrieben : |
| Und mit der Forensuche hat sich nichts dazu gefunden? Kann ich kaum glauben. ;) |
Gefunden schon, aber keinen Threat, in dem das Rekursiv erklärt wird...
thepaine91 - Fr 20.11.09 17:44
rekrusiv ist letzendlich nur ein Methode die sich immer wieder selbst Aufruft...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!