Hallo Windwalker,
ob das Vorgehen zuverlässig ist, weiß ich nicht. Ich habe den Code nur kurz getestet und in 3 Testfällen lieferte er mir die neueste Datei. Unterverzeichnisse werden dabei ignoriert.
Wenn die Dateiendung bekannt ist, dann kannst du "*.*" in Zeile 10 durch deine Endung ersetzen. Bei sehr großen Verzeichnissen beschleunigt das die Suche nach der neuesten Datei.
Sollte das Verzeichnis keine Datei beinhalten, wird ein Leerstring zurückgegeben (in Zeile 8) kannst du ihn verändern.
Delphi-Quellcode:
function GetNewestFile(dir: string): string;
var
F: TSearchRec;
Time: Integer;
begin
dir := IncludeTrailingPathDelimiter(dir);
Time := 0;
Result := '';
if FindFirst(dir + '*.*', faAnyFile, F) = 0 then
try
// loop files (excluding sub directories)
repeat
if (F.Name <> '.') and (F.Name <> '..') and ((F.Attr and faDirectory) <> faDirectory) then
begin
// file found, so let's compare its date
if F.Time > Time then
begin
Result := dir + F.Name;
Time := F.Time
end;
end;
until FindNext(F) <> 0;
finally
FindClose(F);
end;
end;
Grüße, Matze