不好意思,我突然被一个问题卡住了,翻书也没找到答案。如何取得一个文件的长度?
谢了。

解决方案 »

  1.   

    var
       f: file of Byte;
       size : Longint;
       S: string;
       y: Integer;
     begin
       if OpenDialog1.Execute then
       begin
         AssignFile(f, OpenDialog1.FileName);
         Reset(f);
         size := FileSize(f);
         S := 'File size in bytes: ' + IntToStr(size);
         y := 10;
         Canvas.TextOut(5, y, S);
         y := y + Canvas.TextHeight(S) + 5;
         S := 'Seeking halfway into file...';
         Canvas.TextOut(5, y, S);     y := y + Canvas.TextHeight(S) + 5;
         Seek(f,size div 2);
         S := 'Position is now ' + IntToStr(FilePos(f));
         Canvas.TextOut(5, y, S);
         CloseFile(f);
       end;
     end;
      

  2.   

    好象有一个函数可以直接获得文件大小getfilesize
      

  3.   

    function GetMyFileSize(const AFilename: string): DWORD;
    var
      HFILE: THandle;
    begin
      HFILE := CreateFile(PChar(AFilename), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
      if HFILE <> INVALID_HANDLE_VALUE then
      begin
        Result := GetFileSize(HFILE, nil);
        CloseHandle(HFILE);
      end
      else
        Result := 0;
    end;
      

  4.   

    if OpenDialog1.Execute() then
    begin
        mPath := OpenDialog1.FileName;
        CutiFileHandle := FileOpen(mPath, fmOpenRead);
        FileSize := FileSeek(CutiFileHandle,0,2);  
    end
      

  5.   

    AssignFile(f, OpenDialog1.FileName);
     Reset(f);
     try
          size := FileSize(f);
     finally
          CloseFile(f);
     end;