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