Moin Helmi,
Du müsstest bei
If FileExists(SearchRec.Name) then
noch das Directory davorschreiben, da SearchRec.Name nur den Namen der Datei enthält, und FileExists dann im aktuellen Verzeichnis (Arbeitsverzeichnis) sucht.
Dass es unter XP funktioniert hat muss Zufall gewesen sein.
Ausserdem macht es nicht wirklich Sinn hier mit FileExists zu arbeiten, da sicher ist, dass SearchRec.Name eine Datei oder Verzeichnisnamen enthält. Mit Resourcenschutzblock könnte das so aussehen.
Delphi-Quellcode:
if (FindFirst(Directory + '*.*', faAnyFile, SearchRec) = 0) then
try
repeat
If (SearchRec.Attr and faDirectory) = 0 then
Result := Result + SearchRec.Name + '|';
until FindNext(SearchRec) <> 0;
finally
FindClose(SearchRec);
end;