Delphi-Quellcode:
function TForm1.FindFile(ToBeFound, ASearchPath : string) : string;
var
ASearchRec : TSearchRec;
begin
Result := '';
if ASearchPath[Length(ASearchPath)] <> '\' then
ASearchPath := ASearchPath + '\';
if FindFirst(ASearchPath + '*.*', faAnyFile, ASearchRec) = 0 then
begin
repeat
if CompareText(ToBeFound, ASearchRec.Name) = 0 then
begin
ListBox1.Items.Add(ASearchPath + ASearchRec.Name);
// Result := ASearchPath;
// Wieso weisst du den Pfad zu?? muss das nicht heissen
Result := ASearchPath + ASearch.Name;
Break;
end;
until FindNext(ASearchRec) <> 0;
end;
FindClose(ASearchRec);
//
if Result <> '' then exit;
// Die Zeile bitte einfügen, weil du musst die Unterverzeichnise nicht durchsuchen
// wenn du die Datei schon gefunden hast
if FindFirst(ASearchPath + '*.*', faDirectory, ASearchRec) = 0 then
begin
repeat
if ((ASearchRec.Attr and faDirectory) = faDirectory) and
(ASearchRec.Name <> '..') and
(ASearchRec.Name <> '.') then
begin
// FindFile(ToBeFound, ASearchPath + ASearchRec.Name);
// Hier der selbe fehlder wie anfangs bei deiner FindDir funktion.
Result := FindFile(ToBeFound, ASearchPath + ASearchRec.Name);
if Result <> '' then break; // Abbruch wenn was gefunden wurde im Unterverzeichnis
end;
until FindNext(ASearchRec) <> 0;
end;
FindClose(ASearchRec);
end;
Ich hab mal korrigiert, und es mit // gekennzeichnet