unit filequre;interface
uses
     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs, StdCtrls, ExtCtrls,DateUtils;
type
 Tfilequre = class(Tobject)
privatepublicend;   function FGetFileTime(sFileName:string;TimeType:Integer):TDateTime;
   function GetFileSize(firstname:string;secondname:string):integer;
   function CompareFileDates(firstdate:string;seconddate:string):integer;implementation  function FGetFileTime(sFileName:string;TimeType:Integer):TDateTime;
var
    ffd : TWin32FindData;                     //得到文件时间
    dft : DWord ;
    lft,Time : TFileTime ;
    H : THandle ;
begin
   H := Windows.FindFirstFile(PChar(sFileName),ffd);
case TimeType of
   0: Time := ffd.ftCreationTime ;      //创建时间
   1: Time := ffd.ftLastWriteTime ;     // 修改时间
   2: Time := ffd.ftLastAccessTime ;    // 最后访问时间
end ;
//获取文件信息
if (H <> INVALID_HANDLE_VALUE) then
  begin
//只查找一个文件,所以关掉" f i n d "
     Windows.FindClose(H);
//转换F I L E T I M E格式成为local FILETIME格式
     FileTimeToLocalFileTime( Time,lft);
//转换F I L E T I M E格式成为D O S t i m e格式
     FileTimeToDosDateTime( lft,LongRec(dft).Hi,LongRec(dft).Lo);
//最后,转换D O S t i m e格式成为D e l p h i ' s应用的T d a t e Ti m e格式
     Result := FileDateToDateTime( dft );
   end
else
    result :=0;
end ;function GetFileSize(firstname:string;secondname:string):integer;
var
  s,l:integer;                                  //比较文件大小
  fromt,tot: file;
begin
  AssignFile(fromt,firstname);
  Reset(fromt,1);
  AssignFile(tot,secondname);
  Reset(tot,1);
  s:=FileSize(fromt);
  l:=FileSize(tot);
  Closefile(fromt);
  Closefile(tot);
  if s > l then result := 1;       //假如返回的是1,那么第一个比 第二个大
    if s = l then result := 0;     // 假如返回的是0,那么第一个等于 第二个
      if s < l then result := -1;  // 假如返回的是-1,那么第一个比 第二个小end;function Comparefiledates(firstdate:string;seconddate:string):integer;
var
  first,second:tdatetime;                          //比较文件修改日期
begin
  first:=FGetFileTime(firstdate,1);
  second:=FGetFileTime(seconddate,1);
  if comparedatetime(first,second) =1 then result:=1;     //假如返回的是1,那么第一个比 第二个大
    if comparedatetime(first,second) =0 then result:=0;   // 假如返回的是0,那么第一个等于 第二个
      if comparedatetime(first,second) =-1 then result:=-1; // 假如返回的是-1,那么第一个比 第二个小
end;
end.
老是报错:
  Comparefiledates返回值undefined
  GetFileSize返回值undefined