Thema: Delphi FindFirst / FindLast

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: FindFirst / FindLast

  Alt 10. Sep 2010, 12:47
Wenn du das Datum nur vergleichen willst, dann könntest mußt du die Zeitzone nicht umrechnen.
Delphi-Quellcode:
function FileCreated(fn: TFileName): TDateTime;
var
  sr: TSearchRec;
  st: TSystemTime;
begin
  if FindFirst(fn, faAnyFile, sr) = 0 then
  begin
    >>>>
    FileTimeToSystemTime(sr.FindData.ftCreationTime, st);
    Result := SystemTimeToDateTime(st);
    <<<<
    SysUtils.FindClose(sr);
  end else Result := 0;
end;
PS: Bei FAT wird die Zeitzone nicht gespeichert, aber via NTFS sollte Zeitzone eh schon von Windows im FindFirst/FindNext eingerechnet sein.

PSS: neben .ftCreationTime gibt es auch noch 2 andere Zeitangaben.
(z.B. eine für die letzte Änderung )


Nja, hier übergibst du einen Dateinamen und ließt nur dessen Datum aus.
Wenn du via FindFirst/FindNext das ganze Verzeichnis ausließt, dann kannst du in dieser Schleife genau das Selbe mit diesen Datumswerten machen.


SirThornberry:
Ja OK, das kann man, aber dafür muß man die Dateiauswertung doppelt vornehmen (einmal für die Erste und dann nochmal für alle restlichen Dateien).
Da sind die 2 Zeilen für das Initialisieren meißt schneller/kleiner/einfacher.

PS: Wenn mal keine Dateien vorhanden sind, dann hat hat man so auch gleich ein paar "Default"-Wert in diesen Variablen. (ich bin Faul und nehm da lieber die kleine Initialisierung)
$2B or not $2B

Geändert von himitsu (10. Sep 2010 um 12:51 Uhr)
  Mit Zitat antworten Zitat