title: Issue with FileExists and Modified Date
body: <p>On my server there are a few files with Modified Date 31/DEC/1979 (Don't ask me why). So <code>FileExists</code> returns false.</p>
  
  <p><code>Sysutils.FileExists</code> looks like this:</p>
  
  <pre><code>function FileAge(const FileName: string): Integer;
  var
    Handle: THandle;
    FindData: TWin32FindData;
    LocalFileTime: TFileTime;
  begin
    Handle := FindFirstFile(PChar(FileName), FindData);
    if Handle &lt;&gt; 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;
  
  function FileExists(const FileName: string): Boolean;
  begin
    Result := FileAge(FileName) &lt;&gt; -1;
  end;
  </code></pre>
  
  <p>My question is, Why does the function depends on <code>FileAge</code> in the first place?
  Isn't the following line sufficient?:</p>
  
  <pre><code>if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
    // Yes the file exists!
  </code></pre>
  
  <p>Or even based on file attributes:</p>
  
  <pre><code>function MyFileExists(const Name: string): Boolean;
  var
    R: DWORD;
  begin
    R := GetFileAttributes(PChar(Name));
    Result := (R &lt;&gt; DWORD(-1)) and ((R and FILE_ATTRIBUTE_DIRECTORY) = 0);
  end;
  </code></pre>