Delphi 7 - FileExists - und alte Dateien

02.06.2012 - Lesezeit: ~1 Minute

Fileexists liefert für Dateien, die älter sind als Delphi 7 erlaubt (also vor dem 01.01.1970) den Wert FALSE.

function FileExists(const FileName: string): Boolean;  
{$IFDEF MSWINDOWS}  
begin  
  Result := FileAge(FileName) <> -1;  
end;  
{$ENDIF}  

function FileAge(const FileName: string): Integer;  
{$IFDEF MSWINDOWS}  
var  
  Handle: THandle;  
  FindData: TWin32FindData;  
  LocalFileTime: TFileTime;  
begin  
  Handle := FindFirstFile(PChar(FileName), FindData);  
  if Handle <> INVALID_HANDLE_VALUE then  
  begin  
    Windows.FindClose(Handle);  
    if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then  
    begin  
      FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime);  
      if FileTimeToDosDateTime(LocalFileTime, LongRec(Result).Hi,  
        LongRec(Result).Lo) then Exit;  
    end;  
  end;  
  Result := -1;  
end;  
{$ENDIF}  

Die Datei ist ein Foto und wurde von einer Kamera mit dem Datum 0 aufgenommen:

In den EXIF-Daten steht das Datum 01.01.1970

Das Dateidatum ist:

$ ls -l  
-rw-r--r-- 1 wnf wnf 2815785 Nov 25  1961 PICT0003.JPG  
Tags: Delphi-Programmierung