现在已知文件名称:
我用TSearchRec 类型取文件大小 怎么把它变成  系统的一样  几k  或 几G  类型怎么读取? 请高手指点  

解决方案 »

  1.   

    function filectime(filename:string):tdatetime;
     var
          vSearchRec:   TSearchRec;   
          LocalFileTime:   TFileTime;   
          I:   Integer;   
      begin   
          if   FindFirst(filename,   faAnyFile,   vSearchRec)   =   0   then      FileTimeToLocalFileTime(vSearchRec.FindData.ftLastWriteTime,   LocalFileTime);   
          FileTimeToDosDateTime(LocalFileTime,   LongRec(I).Hi,   LongRec(I).Lo);
       //   Memo1.Lines.Values['修改时间']   :=   DateTimeToStr(FileDateToDateTime(I));
          FindClose(vSearchRec);
       result:=FileDateToDateTime(I);
    end;这是取文件修改时间的其它的自已查一下msdn改吧
      

  2.   

    const
      FILE_CREATE_TIME = 0;  //创建时间
      FILE_MODIFY_TIME = 1;  //修改时间
      FILE_ACCESS_TIME = 3;  //访问时间function TForm1.GetFileLastAccessTime(a_FileName: string;
      a_Flag: Byte): TDateTime;
    var
      ffd: TWin32FindData;
      dft: DWord;
      lft: TFileTime;
      h: THandle;
    begin
      h:=FindFirstFile(PChar(a_FileName),ffd);
      if h<>INVALID_HANDLE_VALUE then
      begin
        case a_Flag of
          FILE_CREATE_TIME:FileTimeToLocalFileTime(ffd.ftCreationTime,lft);
          FILE_MODIFY_TIME:FileTimeToLocalFileTime(ffd.ftLastWriteTime,lft);
          FILE_ACCESS_TIME:FileTimeToLocalFileTime(ffd.ftLastAccessTime,lft);
        else
          FileTimeToLocalFileTime(ffd.ftLastAccessTime,lft);
        end;
        FileTimeToDosDateTime(lft,LongRec(dft).Hi,LongRec(dft).Lo);
        Result := FileDateToDateTime(dft);
        Windows.FindClose(h);
      end
      else
      Result:=0;
    end;//整型
    function TForm1.IFormatByte(nSize: Int64): string;
    begin
      if nSize > 1073741824 then
        Result := FormatFloat('###,##0.00G', nSize / 1073741824)
      else if nSize > 1048576 then
        Result := FormatFloat('###,##0.00M', nSize / 1048576)
      else if nSize > 1024 then
        Result := FormatFloat('###,##00K', nSize / 1024)
      else
        Result := FormatFloat('###,#0B', nSize);
      if Length(Result) > 2 then
        if Result[1] = '0' then
          Delete(Result, 1, 1);
    end;function TForm1.FFormatByte(fSize: Double): string;
    begin
      if fSize > 1073741824.0 then
        Result := FormatFloat('###,##0.00G', fSize / 1073741824.0)
      else if fSize > 1048576.0 then
        Result := FormatFloat('###,##0.00M', fSize / 1048576.0)
      else if fSize > 1024.0 then
        //Result := FormatFloat('###,##00K', fSize / 1024.0)
        Result := FormatFloat('###,##00.00K', fSize / 1024.0)
      else
        Result := FormatFloat('###,#0B', fSize);
      if Length(Result) > 2 then
        if Result[1] = '0' then
          Delete(Result, 1, 1);
    end;
      

  3.   

    文件类型 读取注册表就行了 已注册类型
    txt 文本文档
    文本文件属性: 显示的就是
    文件类型: 文本文档这个你自已去找吧,很简单的就是注册表操作,从注册表中获取文件类型名称。