function getfiletime(sfilename:string;timetype:integer):tdatetime;
var
   ffd:TWin32FindData;
   dft:DWord;
   lft,Time:TFileTime;
   h:THandle;
begin
   h:=windows.FindFirstFile(pchar(sfilename),ffd);
   if h<>INVALID_HANDLE_VALUE then begin
      case timetype of
         0: time:=ffd.ftCreationTime;
         1: time:=ffd.ftLastAccessTime;
         2: time:=ffd.ftLastWriteTime;
      end;
      windows.FindClose(h);
      filetimetolocalfiletime(time,lft);
      filetimetodosdatetime(lft,longrec(dft).hi,longrec(dft).lo);
      result:=filedatetodatetime(dft);
   end
   else result:=0;
end;