Einzelnen Beitrag anzeigen

Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Fehler bei FileDateToDateTime(FileGetDate(FHandle)) wenn Dateidatum < 1980

  Alt 21. Apr 2011, 09:08
@samso,

danke für deine Erklärungen nebst Codebeispiel!
Allerdings bekam ich mit deiner Funktion das Jahr 1899 heraus. Das Datum der Datei war in meinem Testfall der 01.01.1979.

Ich habe es nun folgendermaßen gelöst:
Delphi-Quellcode:
function GetFileDate(TheFileName: string): TDateTime;
var
  SR: TSearchRec;
  SystemTime: TSystemTime;
  NewLastAccessTime: TFileTime;
begin
  Result := 0;
  try
  if FindFirst(TheFileName, faAnyFile, SR) = 0 then try
    if (Windows.FileTimeToLocalFiletime(SR.FindData.ftLastWriteTime, NewLastAccessTime) and
      Windows.FileTimeToSystemTime(NewLastAccessTime, SystemTime)) then
      Result := Encodedate(SystemTime.wYear,
        SystemTime.wMonth,
        SystemTime.wDay) +
        Encodetime(SystemTime.wHour,
        SystemTime.wMinute,
        SystemTime.wSecond,
        SystemTime.wMilliseconds);
  finally
    SysUtils.FindClose(SR)
  end;
end;
@Blup,
danke für den Hinweis.
Wenn in der Delphi-Hilfe bei der Funktionserklärung von FileAge() oder FileGetDate() jeweils dein Hinweis oder ein Verweis auf das Thema "Format Zeitstempel" stehen würde..., ja das wäre dann eine Hilfe.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat