怎么获取指定文件大小?

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      FS: TFileStream;
    begin
      FS := TFileStream.Create('c:\a.txt',fmOpenRead);
      showmessage(inttostr(FS.Size));    //文件大小
    end;
      

  2.   

    直接用function FileSize()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;
      

  3.   

    AHnd := FileOpen(filename, fmOpenReadWrite);
    ASize := GetFileSize(AHnd, nil);
    FileClose(AHnd);
      

  4.   

    我用了FileSize,但是一直出i/o错误,不知道是怎么回事?