Hi Daniel,
diese Prozedur sollte Deinem Wunsch entsprechen:
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
ListBox1.Clear;
GetAllFiles('C:\WINDOWS\'+'\*.EXE',ListBox1.Items)
Ich hoffe, ich konnte Dir helfen.
Mit freundlichem Gruß
Martin