![]() |
neueste Datei in Verzeichnis finden
Hallo,
ich starte aus Delphi heraus ein Batchprogramm, welches eine Datei in einem Verzeichnis erzeugt. Zur Weiterverarbeitung brauche ich nun diese Datei. Wie finde ich denn diese Datei? Am einfachsten wird es wohl sein, nach der Datei mit dem neuesten Datum zu suchen, aber wie erhalte ich sie? Danke für die Hilfe! |
Re: neueste Datei in Verzeichnis finden
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:
Grüße, Matze
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; |
Re: neueste Datei in Verzeichnis finden
Toll, danke!
Ich hätte jetzt nicht erwartet, dass du mir gleich eine komplette Funktion schreibst. Hatte eher gehofft, es gäbe evtl. die Möglichkeit, dass direkt per Parameter über FindFirst zu machen, da ja FindFirst die Dateien aufsteigend nach Datum sortiert. Aber da dem wohl nicht so ist, danke für die manuelle Implementierung! |
Re: neueste Datei in Verzeichnis finden
Hallo,
vielleicht geht es einfacher, aber ich wüsste nicht wie. Bei mir liefert FindFirst die Ergebnisse nicht nach Datum sortiert. Grüße, Matze |
Re: neueste Datei in Verzeichnis finden
Zitat:
Ich hatte das mit der Sortierung nach Datum aufsteigend auch nur irgendwo hier im Forum gelesen. Selbst war ich beim FindFirst noch nie auf eine Sortierung angewiesen. Aber wurscht, so geht's ja! :-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz