比如有个文件d:\test.txt, 
 我如何才label1.capital上反映出此文件的建立日期(不要建立时间,只要建立日期),谢谢大大虾们,请指点

解决方案 »

  1.   

    比较麻烦,你看看下面的代码吧:
       if GetFileTime(F, @CreateFT, @LastAccessFT, @LastWriteFT) then
       begin
        { 转换为系统时间并显示 }
          FileTimeToLocalFileTime(CreateFT, CreateFT);
          FileTimeToSystemTime(CreateFT, ST);
          CreateTime := SystemTimeToDateTime(ST);      FileTimeToLocalFileTime(LastWriteFT, LastWriteFT);
          FileTimeToSystemTime(LastWriteFT, ST);
          LastWriteTime := SystemTimeToDateTime(ST);      FileTimeToLocalFileTime(LastAccessFT, LastAccessFT);
          FileTimeToSystemTime(LastAccessFT, ST);
          LastAccessTime := SystemTimeToDateTime(ST);
       end;
      

  2.   

    把完整的函数贴给你吧:
    function GetmFileTime(FileName: PChar;
       out CreateTime, LastAccessTime, LastWriteTime: TDate): Boolean;
    var
       CreateFT, LastAccessFT, LastWriteFT: TFileTime;
       ST: TSystemTime;
       fStruct: _OFSTRUCT;
       F: HFILE;
    begin
       Result := False;
       F := OpenFile(FileName, fStruct, OF_READ);
       if F = HFILE_ERROR then Exit;
       if GetFileTime(F, @CreateFT, @LastAccessFT, @LastWriteFT) then
       begin
        { 转换为系统时间并显示 }
          FileTimeToLocalFileTime(CreateFT, CreateFT);
          FileTimeToSystemTime(CreateFT, ST);
          CreateTime := SystemTimeToDateTime(ST);      FileTimeToLocalFileTime(LastWriteFT, LastWriteFT);
          FileTimeToSystemTime(LastWriteFT, ST);
          LastWriteTime := SystemTimeToDateTime(ST);      FileTimeToLocalFileTime(LastAccessFT, LastAccessFT);
          FileTimeToSystemTime(LastAccessFT, ST);
          LastAccessTime := SystemTimeToDateTime(ST);
       end;
       Result := True;
       _lclose(F);
    end;
      

  3.   

    似乎功能太多了,我只要在label1的capital上显示建立时间就可以了,能不能简单点
      

  4.   

    //需要的变量自己定义 
    if GetFileTime(F, @CreateFT, @LastAccessFT, @LastWriteFT) then
       begin
        { 转换为系统时间并显示 }
          FileTimeToLocalFileTime(CreateFT, CreateFT);
          FileTimeToSystemTime(CreateFT, ST);
          CreateTime := SystemTimeToDateTime(ST);
       end;
    label1.Caption:=DateTostr(CreateTime);
      

  5.   

    如果要显示完整的时间
    label1.Caption:=DateTimeTostr(CreateTime);
      

  6.   

    // 取得文件创建时间
    function GetFileCreationTime(const FileName: String): TDateTime;
    var
      FileTime: TFileTime;
      LocalFileTime: TFileTime;
      hFile: THandle;
      SystemTime: TSystemTime;
    begin
      Result := 0;
      FileTime.dwLowDateTime := 0;
      FileTime.dwHighDateTime := 0;
      hFile := FileOpen(FileName, fmShareDenyNone);
      try
        if hFile <> 0 then
        begin
          Windows.GetFileTime(hFile, @FileTime, nil, nil);
          FileTimeToLocalFileTime(FileTime, LocalFileTime);
          FileTime := LocalFileTime;
        end;
      finally
        FileClose(hFile);
      end;
      if FileTimeToSystemTime(FileTime, SystemTime) then
        Result := SystemTimeToDateTime(SystemTime);
    end;// 取得文件修改时间
    function GetFileLastWriteTime(const FileName: String): TDateTime;
    var
      FileTime: TFileTime;
      LocalFileTime: TFileTime;
      hFile: THandle;
      SystemTime: TSystemTime;
    begin
      Result := 0;
      FileTime.dwLowDateTime := 0;
      FileTime.dwHighDateTime := 0;
      hFile := FileOpen(FileName, fmShareDenyNone);
      try
        if hFile <> 0 then
        begin
          Windows.GetFileTime(hFile, nil, nil, @FileTime);
          FileTimeToLocalFileTime(FileTime, LocalFileTime);
          FileTime := LocalFileTime;
        end;
      finally
        FileClose(hFile);
      end;
      if FileTimeToSystemTime(FileTime, SystemTime) then
        Result := SystemTimeToDateTime(SystemTime);
    end;// 取得文件访问时间
    function GetFileLastAccessTime(const FileName: String): TDateTime;
    var
      FileTime: TFileTime;
      LocalFileTime: TFileTime;
      hFile: THandle;
      SystemTime: TSystemTime;
    begin
      Result := 0;
      FileTime.dwLowDateTime := 0;
      FileTime.dwHighDateTime := 0;
      hFile := FileOpen(FileName, fmShareDenyNone);
      try
        if hFile <> 0 then
        begin
          Windows.GetFileTime(hFile, nil, @FileTime, nil);
          FileTimeToLocalFileTime(FileTime, LocalFileTime);
          FileTime := LocalFileTime;
        end;
      finally
        FileClose(hFile);
      end;
      if FileTimeToSystemTime(FileTime, SystemTime) then
        Result := SystemTimeToDateTime(SystemTime);
    end;
      

  7.   

    to:hkbarton(我是好人) 
       如果我知道時間,那我還不如直接寫上去,不用這麼麻煩
    謝謝gwsr(咩咩)和DainelLee(¥$£ 吃肉的菜鸟 £$¥) 
       我覺得用dateto(fileage(c:\test.txt))就可以 了