Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: neueste Datei in Verzeichnis finden

  Alt 22. Dez 2009, 09:26
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
  Mit Zitat antworten Zitat