Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#13

AW: Rekursive Dateisuche lässt Unterverzeichnisse aus

  Alt 30. Okt 2014, 17:03
Bei mir funktioniert dieser Code schon seit vielen Jahren in zahlreichen Anwendungen absolut zuverlässig:
Delphi-Quellcode:
procedure GetFilesInDirectory(ADirectory: string; AMask: String; AList, DatList, GrossList: TStrings; ARekursiv: Boolean);
var
  SR : TSearchRec;
  Datum : TDateTime;

begin
   ADirectory := BackShlashAmEnde(ADirectory);

   if (SysUtils.FindFirst(ADirectory + AMask,faAnyFile and not faDirectory,SR) = 0) then
   begin
      repeat
          if (SR.Name<>'.') AND (SR.Name<>'..') AND (SR.Attr<>faDirectory) then
          begin
             AList.Add(ADirectory+SR.Name);
             Datum := FileDateToDateTime(Sr.Time);
             DatList.Add(DateToStr(Datum));
             GrossList.Add(IntToStr(Sr.size));
          end;
      until SysUtils.FindNext(SR)<>0;
      SysUtils.FindClose(SR);
   end;

   if ARekursiv then
      if (SysUtils.FindFirst(ADirectory+'*.*',faDirectory,SR)=0) then
      begin
         repeat
             if (SR.Name<>'.') AND (SR.Name<>'..') then
                GetFilesInDirectory(ADirectory+SR.Name,AMask,AList,DatList,GrossList,True);
         until FindNext(SR)<>0;
         SysUtils.FindClose(SR);
      end;
end;
In ADirectory wird das zu durchsuchende Verzeichnis angegeben.
AMask enthält die Suchmaske.
AList liefert die Dateiliste zurück.
DatList liefert die zugehörigen Datei-Datumwerte zurück.
GrossList liefert die zugehörigen Datei-Größen zurück.
ARekursiv gibt an, ob Unterverzeichnisse durchsucht werden sollen.
  Mit Zitat antworten Zitat