function Search(path: String; FileName: string;bAll: Boolean=false): String;
var
searchrec: TSearchRec;
begin
if FindFirst(path + '*.*',faAnyFile,searchrec)=0 then
begin
repeat
if (searchrec.Attr=faDirectory) and bAll then
begin
if (searchrec.Name<>'.') and (searchrec.Name<>'..') then
begin
Search(path + searchrec.Name + '/', FileName, bAll);
end;
end else
begin
end;
Until (FindNext(searchrec)<>0);
FindClose(searchRec);
end;
end;
var
searchrec: TSearchRec;
begin
if FindFirst(path + '*.*',faAnyFile,searchrec)=0 then
begin
repeat
if (searchrec.Attr=faDirectory) and bAll then
begin
if (searchrec.Name<>'.') and (searchrec.Name<>'..') then
begin
Search(path + searchrec.Name + '/', FileName, bAll);
end;
end else
begin
end;
Until (FindNext(searchrec)<>0);
FindClose(searchRec);
end;
end;