So, hab grad einen Code gebastelt, der wohl so manchen weiterhelfen wird:
in FileName gibt man den Dateinamen der Datei an, nach der man suchen will (Bitte nur den Dateinamen, ohne Pfad!!!).
in Path wird dann der Ordner angegeben, in dem die Suche gestartet werden soll (z.B. 'C:\' für die gesamte Festplatte).
Die Funktion durchsucht zunächst im angegeben Ordner nach der Datei. Ist sie dort nicht vorhanden, werden alle Unterorder rekursiv nach der Datei durchsucht.
Als Ergebnis liefert die Funktion den kompletten Pfad der Datei mit dem Dateinamen.
Es wird immer die zuerst gefundene Datei zurückgegeben.
Konnte die Datei nicht gefunden werden, wird '' zurückgegeben.
Beispiel für einen Aufruf der Funtion:
ShowMessage(Find('test.txt','C:\'));
Delphi-Quellcode:
function Find(FileName: String; Path: String): String;
var SR: TSearchRec;
begin
If FindFirst(Path+FileName, faAnyFile-faDirectory, SR)=0 then
begin
Result := Path+SR.Name;
FindClose(SR);
end
else
If FindFirst(Path+'*.*', faAnyFile, SR)=0 then
begin
Repeat
If (SR.Name<>'.') and (SR.Name<>'..') then
Result := Find(FileName, Path+SR.Name+'\');
Until (FindNext(SR)<>0) or (Result<>'');
FindClose(SR);
end
else
Result := '';
end;