Thema: Delphi Alle Filenamen

Einzelnen Beitrag anzeigen

TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.861 Beiträge
 
Delphi 12 Athens
 
#10

AW: Alle Filenamen

  Alt 9. Mai 2024, 12:48
Das hier müsste auch unter Delphi 7 funktionieren:

Delphi-Quellcode:
procedure GetFileListEx(const Directory: string; const Files: TStrings; const FileMask: string; const SubFolders: Boolean);
var SearchRec: TSearchRec;
begin
Application.ProcessMessages;
if FindFirst(IncludeTrailingPathDelimiter(Directory)+FileMask, faAnyFile and not faDirectory and not faVolumeID and not faHidden, SearchRec) = 0 then
 try repeat Files.Add(IncludeTrailingPathDelimiter(directory)+SearchRec.Name);
     until FindNext(SearchRec) <> 0;
 finally SysUtils.FindClose(SearchRec); end;
if SubFolders then
 if FindFirst(IncludeTrailingPathDelimiter(Directory)+'*.*', faAnyFile, SearchRec) = 0 then
  try repeat
      if (SearchRec.Attr and faDirectory) <> 0 then
       if ((SearchRec.Name <> '.') and (SearchRec.Name <> '..'))
       then GetFileListEx(IncludeTrailingPathDelimiter(Directory)+SearchRec.Name, Files, FileMask, SubFolders);
      until FindNext(SearchRec) <> 0;
  finally SysUtils.FindClose(SearchRec); end;
end;
Könnte funktionieren, auch wenn ich das etwas anders formatieren würde, aber das ist mehrheitlich Geschmackssache.
Was ich aber lieber weglassen würde ist das Application.ProgressMessages. Damit kann man auch Chaos anrichten,
z. B. wenn die Routine aus einem Eventhandler heraus aufgerufen wird und der nicht reetrant ist...
Grüße
TurboMagic
  Mit Zitat antworten Zitat