TFileStream.Create(opendialog1.filename, fmCreate)直到程序关闭才释放?如何就地解决?(100分)

  • 主题发起人 主题发起人 房客
  • 开始时间 开始时间

房客

Unregistered / Unconfirmed
GUEST, unregistred user!
程序中重新要调用该文件的TFileStream
 
var
ii:TStream;
begin
ii:=TFileStream.Create(opendialog1.filename, fmCreate);
//从新调用前
ii.Free;
//然后就可以再次建立
end;
 
现在MY问题在于:
ii:=TFileStream.Create('a.exe', fmCreate);
ii.Free;
如果是
ii:=TFileStream.Create('b.exe', fmCreate);
ii.Free;//没问题
当再次
ii:=TFileStream.Create('a.exe', fmCreate);
ii.Free;//有问题了,文件都在上一次的位置
postion定位都无效???
 
房客老兄,下面的代码没问题呀。
procedure TForm1.Button1Click(Sender: TObject);
var
ii:TFileStream;
begin
ii:=TFileStream.Create('e:/a.exe', fmCreate);
ii.Free;
// ii:=TFileStream.Create('e:/b.exe', fmCreate);
// ii.Free;
ii:=TFileStream.Create('e:/a.exe', fmCreate);
ii.Free;
end;
 
panyongze:
我的情况是
ii:=TFileStream.Create('e:/a.exe', fmCreate);
ii.Free;
以后
到资源管理去删除该文件。。。文件正被占用,无法删除:(
 
我可以删除,问题出在别的地方吧。
 
试试:
var
ii: TFileStream;
Handle: THandle;
begin
ii:=TFileStream.Create('e:/a.exe', fmCreate);
Handle := ii.Handle;
ii.Free;
FileClose(Handle);
end;
Fileclose 在 SysUtils 中声明。
 
我试过了一切都没问题
 
俺是放到一个THREAD里头去的
 
作主线程同步
 
kthy:
thank you 问题还是没解决 可能是我没过关
 
多人接受答案了。
 

Similar threads

后退
顶部