Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
826 Beiträge
 
Delphi 10.4 Sydney
 
#1

Rekursive Dateisuche lässt Unterverzeichnisse aus

  Alt 30. Okt 2014, 17:26
Hallo Zusammen,

mit diesem Code, den ich übernommen, nachvollzogen und angepasst habe, möchte ich alle Dateien, in denen ein Teilstring ("4711") vorkommt, in einem StringGrid mit dem jeweiligen Pfad ausgeben. Dabei sollen alle Unterverzeichnisse mit überprüft und die Dateien und Pfade ebenfalls ausgegeben werden.

Delphi-Quellcode:
function FileSearches(const PathName, FileName : string; const InDir : boolean): TRows; // InDir gibt an ob Unterverzeichnisse mit durchsucht werden sollen
var Rec : TSearchRec;
      Path : string;
begin
   setlength(Result,2,0);
   Path := IncludeTrailingBackslash(PathName);
   if FindFirst(Path + '*'+FileName+'*', faAnyFile and not faDirectory, Rec) = 0 then
      try
         repeat
            SetLength(Result,2,Length(Result[0])+1);
            Result[0,Length(Result[0])-1]:=Path;
            Result[1,Length(Result[0])-1]:=Rec.Name;
         until FindNext(Rec) <> 0;
      finally
         FindClose(Rec);
      end;
   If not InDir then Exit;
   if FindFirst(Path + '*.*', faDirectory, Rec) = 0 then
      try
         repeat
            if (Rec.Attr in [faDirectory]) and (Rec.Name<>'.') and (Rec.Name<>'..') then //An dieser Stelle werden die Bedingungen nicht erfüllt, obwohl Unterverzeichnisse und weitere Treffer vorhanden sind
            FileSearches(Path + Rec.Name, FileName, True);
         until FindNext(Rec) <> 0;
      finally
         FindClose(Rec);
      end;
end;
Ich habe verschiedene Möglichkeiten versucht, aber es wird immer nur im Hauptverzeichnis gesucht und nicht in darin enthaltenen Unterverzeichnissen. Kann mir jemand weiterhelfen?

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat