assignfile的問題(50分)

  • 主题发起人 主题发起人 takdick
  • 开始时间 开始时间
T

takdick

Unregistered / Unconfirmed
GUEST, unregistred user!
var<br>f:file;<br>begin<br>assignfile(f,'c:/test.exe');<br>Rewrite(f,1);<br>.....<br>......<br>closefile(f);<br>end;<br>請問如何在另一事件中檢測是否已closefile(f),如果否則執行closefile(f)?<br>類似 if memorystream &lt;&gt; nil then memorystream.free;
 
AssignFile(F, 'c:/text.exe');<br>try<br> &nbsp;Rewrite(f, 1);<br> &nbsp;try<br> &nbsp; .....<br> &nbsp;finally<br> &nbsp; &nbsp;Closefile(F);<br> &nbsp;end;<br>except<br> &nbsp;// rewrite failed<br>end;
 
不.我是要在另一事件中檢測.
 
如果是独占式地打开文件,可以在另一事件里判断该文件是否InUse
 
是獨佔式的.<br>煩請給個代碼,謝謝..
 
function IsFileInUse(const fName: string): Boolean;<br>var<br> &nbsp;HFileRes: HFILE;<br>begin<br> &nbsp;Result := false;<br> &nbsp;if not FileExists(fName) then exit;<br> &nbsp;HFileRes := CreateFile(pchar(fName), GENERIC_READ or GENERIC_WRITE,<br> &nbsp; &nbsp;0 {this is the trick!}, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);<br> &nbsp;Result := (HFileRes = INVALID_HANDLE_VALUE);<br> &nbsp;if not Result then CloseHandle(HFileRes);<br>end;
 
多人接受答案了。
 
后退
顶部