我用TFileStream 建立一个文件流, 但是它的Size总是 1024,而打开文本数据时却是一个正确的值.
procedure TForm1.Button1Click(Sender: TObject);
var
 Stream: TStream;
begin
  //Txt文本是正确的size
 Stream:=TFileStream.Create('d:\ABC.TxT',fmOpenReadWrite or fmShareDenyWrite); //PDF文件时size总是1024
 //Stream:=TFileStream.Create('d:\ABC.PDF',fmOpenReadWrite or fmShareDenyWrite); showmessage(inttostr(Stream.Size)); Stream.Free;
end;

解决方案 »

  1.   

    Stream: TFileStream;  也是一样~~
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
     Stream: TStream;
    begin
      //Txt文本是正确的size
      Stream:=TFileStream.Create('d:\ABC.TxT',fmOpenReadWrite or fmShareDenyWrite);  FreeAndNil(Stream);  //PDF文件时size总是1024
      //Stream:=TFileStream.Create('d:\ABC.PDF',fmOpenReadWrite or fmShareDenyWrite);  showmessage(inttostr(Stream.Size));  Stream.Free;
    end;
      

  3.   

    加上  FreeAndNil(Stream);后面的有错误了~~~~~~
      

  4.   

    楼主我在自己的机器上试了,无论打开文本文件,还是pdf都是正确的值,不会出现你说的那种情况呀
      

  5.   

    可能有其它错误,那个 fileStream 不会认文件后缀的可能那个pdf 被其他文件打开,锁住了
      

  6.   

    可能是我在线程里打开了那个文件,可能调试过程中我没有把那线程释放吧~~~~~相信是 aiirii 的那种说法~~~~~~~