如何读取文件的创建时间(注意是创建时期加时间)和文件大小?
有那为大哥能给个完整的例子谢谢!

解决方案 »

  1.   

    // 转换文件的时间格式function CovFileDate(FileDate: _FileTime): TDateTime;
    var
      Tct: _SystemTime;
      Temp: _FileTime;
    begin
      FileTimeToLocalFileTime(FileDate, Temp);
      FileTimeToSystemTime(Temp, Tct);
      CovFileDate := SystemTimeToDateTime(Tct);
    end;// 获取文件时间,fn表示目标文件路径和名称,fType为取得日期的类型function GetFileTime(const fn: string; const fType: Byte): string;
    const
      Model = 'yyyy/mm/dd,hh:mm:ss'; { 设定时间格式 }
    var
      Tp: TSearchRec; { 声明Tp为一个查找记录 }
    begin
      FindFirst(fn, faAnyFile, Tp); { 查找目标文件 }
      // 返回文件的创建时间
      if fType = 1 then
        Result := FormatDateTime(Model, CovFileDate(Tp.FindData.ftCreationTime));
      // 返回文件的修改时间
      if fType = 2 then
        Result := FormatDateTime(Model, CovFileDate(Tp.FindData.ftLastWriteTime));
      //返回文件的当前访问时间
      if fType = 3 then
        Result := FormatDateTime(Model, Now);  FindClose(Tp);
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      if OpenDialog1.Execute then
        begin
          Memo1.Clear;
          Memo1.Lines.Add('文件创建日期:' + GetFileTime(OpenDialog1.FileName, 1));
          Memo1.Lines.Add('文件修改日期:' + GetFileTime(OpenDialog1.FileName, 2));
          Memo1.Lines.Add('文件访问日期:' + GetFileTime(OpenDialog1.FileName, 3));
        end;
    end;
      

  2.   

    to hhnick 
    编译的时候出错呀!
    [Error] Unit1.pas(17): Unsatisfied forward or external declaration: 'TForm1.CovFileDate'
    [Error] Unit1.pas(18): Unsatisfied forward or external declaration: 'TForm1.GetFileTime'
      

  3.   

    unit   Unit2; interface uses 
        Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms, 
        Dialogs,   StdCtrls; type 
        TForm1   =   class(TForm) 
            Button1:   TButton; 
            procedure   Button1Click(Sender:   TObject); 
        private 
            function   GetFileCreateDT(filename:string):string;//获得文件创建日期和时间 
            function   CovFileDate(Fd:_FileTime):TDateTime;//转换日期时间格式 
            function   GetFileSizeValue(pFilePath:string):Int64;   //文件大小 
        public 
            {   Public   declarations   } 
        end; var 
        Form1:   TForm1; implementation {$R   *.dfm} function   TForm1.CovFileDate(Fd:   _FileTime):   TDateTime; 
    var 
        Tct:_SystemTime; 
        Temp:_FileTime; 
    begin 
        FileTimeToLocalFileTime(Fd,Temp); 
        FileTimeToSystemTime(Temp,Tct); 
        CovFileDate:=SystemTimeToDateTime(Tct); 
    end; function   TForm1.GetFileCreateDT(filename:   string):   string; 
    var   Tp:TSearchRec; 
    begin 
        FindFirst(filename,faAnyFile,Tp); 
        Result:=FormatDateTime('YYYY-MM-DD,HH:MM:SS',CovFileDate(Tp.FindData.ftCreationTime)); 
    end; procedure   TForm1.Button1Click(Sender:   TObject); 
    begin 
        Showmessage(GetFileCreateDT('D:\aa.rar')); 
        ShowMessage(IntToStr(GetFileSizeValue('D:\aa.rar'))); 
    end; function   TForm1.GetFileSizeValue(pFilePath:   string):   Int64; 
    var 
        hFile:Thandle; 
        dwSize,dwSizeHigh:DWORD; 
    begin 
        try 
            hFile:=CreateFile(pchar(pFilePath),GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING,0,0); 
            dwSize:=GetFileSize(hFile,@dwSizeHigh); 
            CloseHandle(hFile); 
            Result:=dwSize; 
        except 
            Result:=0; 
        end; 
    end; end.