DateTimeToFileDate :把Delphi日期格式转换为DOS日期格式
FileDateToDateTime :把DOS日期格式转换为Delphi日期格式
FileGetDate :返回文件的DOS日期时间戳
FileSetDate :设置文件的DOS日期时间戳

解决方案 »

  1.   

    有下面的例子,估计解决问题没有什么问题。
    方法1:使用FindFirst函数使用单元 windows,sysutils,定义如下函数function getfiledate(const filename:string;var d:TDateTime):Boolean;var
        LocalFileTime : TFileTime;
        DosFileTime   : DWORD;
        SearchRec     : TSearchRec;
    begin    result:=false;
        //如果返回值不为0则表示出错
        if FindFirst(filename, faAnyFile, SearchRec)<>0 then exit;    FileTimeToLocalFileTime(SearchRec.FindData.ftLastWriteTime, 
            LocalFileTime);
        FileTimeToDosDateTime(LocalFileTime,LongRec(DosFileTime).Hi,
            LongRec(DosFileTime).Lo);     d := FileDateToDateTime(DosFileTime);    FindClose(SearchRec);    result:=true;
    end;
    方法2:使用FileAge函数使用单元 sysutils
    定义如下函数
    function getfiledate(const filename:string;var d:TDateTime):Boolean;
    var
        DosFileTime : integer;
    begin
        result:=false;
        DosFileTime:=FileAge(filename);
        if DosFileTime<>-1 then  //返回-1表示文件不存在
        begin 
            d:=FileDateToDateTime(DosFileTime);
            result:=true;
        end;
    end;方法1:使用FindFirst函数使用单元 windows,sysutils,定义如下函数function getfiledate(const filename:string;var d:TDateTime):Boolean;var
        LocalFileTime : TFileTime;
        DosFileTime   : DWORD;
        SearchRec     : TSearchRec;
    begin    result:=false;
        //如果返回值不为0则表示出错
        if FindFirst(filename, faAnyFile, SearchRec)<>0 then exit;    FileTimeToLocalFileTime(SearchRec.FindData.ftLastWriteTime, 
            LocalFileTime);
        FileTimeToDosDateTime(LocalFileTime,LongRec(DosFileTime).Hi,
            LongRec(DosFileTime).Lo);     d := FileDateToDateTime(DosFileTime);    FindClose(SearchRec);    result:=true;
    end;
    方法2:使用FileAge函数使用单元 sysutils
    定义如下函数
    function getfiledate(const filename:string;var d:TDateTime):Boolean;
    var
        DosFileTime : integer;
    begin
        result:=false;
        DosFileTime:=FileAge(filename);
        if DosFileTime<>-1 then  //返回-1表示文件不存在
        begin 
            d:=FileDateToDateTime(DosFileTime);
            result:=true;
        end;
    end;
      

  2.   

    请看 FindFirst, FindNext, TSearchRec 的相关帮助。