判断文件是否被其他程序独占地打开
类 别:文件操作
我没有找到能完成这件事的WIN32 API函数,于是自己写了一个:
function E9FileStatus(Const Origin: string): boolean;
var
F: TFileStream;
begin
{
值含义
fmCreate 根据所给名字创建文件。如果所给名字的文件存在,以写状态打开文件。
fmOpenRead 以只读状态打开文件
fmOpenWrite 以只写状态打开文件。文件全部重写,替代已有内容。
fmOpenReadWrite 打开文件,修改而不是替换文件内容。
共享(share)状态必须是以下值之一:
值意义
fmShareCompat 共享与文件控制块(FCB)的打开方式兼容。
fmShareExclusive 其他程序不能以任何理由打开文件。
fmShareDenyWrite 其他程序能以只读方式打开文件,但不能写。
fmShareDenyRead 其他程序能以只写方式打开文件,但不能读。
fmShareDenyNone 不禁止其他程序读或写文件。
如果文件不能被打开, Create 将产生异常。
如果文件未被锁定,将返回true
}
try
try
F := TFileStream.Create(Origin, fmOpenReadWrite OR fmShareExclusive);
Result := true;
finally
F.Free;
end;
except
Result := false;
end;
end;
原创文章如转载,请注明:转载自心动吧DELPHI网络书 [ http://www.abcxd.com/delphi/ ]
本文链接地址:http://www.abcxd.com/delphi/abcxddelphi/delphiDIRAA/241.html