Wie kann ich eine rekusrive Dateisuche programmieren ? Der Sinn des Ganzen ist einfach, daß ich ab einem bestimmten Verzeichnis alle Unterverzeichnis nach MP§ Files dursuchen lassen will und dise in eine ListBox eintragen will, um eine Playlist zu erstellen.
Ich habe schon einmal vor Jahren versucht, eine rekursive Suche zu schreiben, bin aber kläglich gescheitert. Am besten wäre es, wenn mir jemand entsprechenden Code in Delphi posten könnte…
PROCEDURE GetAllFiles (Mask\_: STRING; Items\_: TStrings);
CONST
FileAttr = faReadOnly+faHidden+faArchive;
VAR
Search: TSearchRec;
SFName: STRING;
SFPath: STRING;
begin
SFName := ExtractFileName(Mask\_);
SFPath := ExtractFilePath(Mask\_);
IF SFPath[Length(SFPath)]'\' THEN SFPath := SFPath+'\';
// alle Dateien suchen
IF FindFirst(Mask\_, FileAttr, Search)=0 THEN
begin
REPEAT
begin
Items\_.Add(SFPath+Search.Name)
end
UNTIL FindNext(Search)0
end;
// Unterverzeichnisse durchsuchen
IF FindFirst(SFPath+'\*.\*',faDirectory,Search)=0 THEN
begin
REPEAT
begin
IF ((Search.Attr AND faDirectory)=faDirectory)
AND (Search.name[1]'.') THEN
begin
// Selbstaufruf von GetAllFiles
GetAllFiles(SFPath+Search.Name+'\'+SFName,Items\_)
end
end
UNTIL FindNext(Search)0
end
end;
Wenn Du z. B. alle „EXE“-Dateien in „C:\WINDOWS“ inklusive aller Dateien in allen Unterverzeichnissen in die ListBox „ListBox1“ schreiben willst, erreichst Du dies mit