Hm, kann ich jetzt nicht nachvollziehen. Ich hab solgendes Ausprobiert: (natürlich die BuildFileName(., .) durch ein einfach . + . ersetzt)
Delphi-Quellcode:
function FindPath(ToBeFound, Path :
string) :
string;
var
ASearchRec : TSearchRec;
begin
Result := '
';
if Path[Length(Path)] <> '
\'
then Path := Path + '
\';
if FindFirst(Path + '
*.*', faDirectory, ASearchRec) = 0
then
begin
repeat
if ((ASearchRec.Attr
and faDirectory) = faDirectory)
and
(ASearchRec.
Name <> '
..')
and
(ASearchRec.
Name <> '
.')
then
begin
if CompareText(ToBeFound, ASearchRec.
Name) = 0
then
begin
Form1.ListBox1.Items.Add(Path + ASearchRec.
Name);
Result := Path + ASearchRec.
Name;
Break;
end
else
begin
Result := FindPath(ToBeFound, Path+ ASearchRec.
Name);
if Result <> '
'
then Break;
end;
end;
until FindNext(ASearchRec) <> 0;
FindClose(ASearchRec);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(findpath('
HTML', '
c:\'));
end;
Zurückgeliefert wird bei mir dann
c:\cygwin\usr\doc\libxml2-2.4.23\
html
und das ist ein unterverzeichnis bei mir.
evtl liegt dein Fehler in der BuildFilePath Funktion? Die konnte ich leider nicht testen