在DELPHI程序中如何获取文件的大小和文件的修改时间?

解决方案 »

  1.   

    获取文件修改时间:
    function GetFileLastAccessTime(sFileName:string;uFlag:byte):TDateTime;
    var
      ffd:TWin32FindData;
      dft:DWord;
      lft:TFileTime;
      h:THandle;
    begin
      h:=FindFirstFile(PChar(sFileName),ffd);
      if h<>INVALID_HANDLE_VALUE then
      begin
      case uFlag 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;GetFileLastAccessTime()将会以 Delphi的 TdateTi 
    me格式返回你所指定的文件的最后访问日期
      

  2.   

    获取文件的大小
    function FileLength(Filename:string):integer;
    var
      fp:file of byte;
    begin
      AssignFile(fp,Filename);
      Reset(fp);
      Result := FileSize(fp);
      CloseFile(fp);
    end;
    或者
    var
      hFile : Integer;
    begin
      hFile:=CreateFile(PChar('c:\temp\a.htm'), GENERIC_READ, 0, nil,
                        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
      Edit1.Text := IntToStr(GetFileSize(hFile, 0));
      

  3.   

    可以用api函数
    getfilesize
    getfiletime
      

  4.   

    最好的方法,使用api 函数:SHGetFileInfo
      

  5.   

    getfilesize
    getfiletime这两个东东怎么用的啊?
      

  6.   

    文件的大小可以这样取
    procedure TForm1.Button1Click(Sender: TObject);
    var
      hFile : Integer;
    begin
      hFile:=CreateFile(PChar(edit1.Text), GENERIC_READ, 0, nil,
                        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
      Edit2.Text := IntToStr(GetFileSize(hFile, 0) div 1024)+'KB';
    end;
      

  7.   

    var
     FDateTime:TDateTime;
     F,FSize:LongInt;F:=FileOpen(FileName,fmOpenRead);
    FSize:=FileSeek(F,0,2);
    FDateTime:=FileDateToDateTime(FileGetDate(F));