检查文件是否在Delphi中打开
时间:2020-03-06 14:48:03 来源:igfitidea点击:
有没有办法检查ReWrite是否已在Delphi中打开文件?
代码将如下所示:
AssignFile(textfile, 'somefile.txt'); if not textFile.IsOpen then Rewrite(textFile);
解决方案
我们可以获取文件模式。 (片刻,我将创建一个示例)。
TTextRec(txt).Mode提供以下模式:
55216 = closed 55217 = open read 55218 = open write fmClosed = $D7B0; fmInput = $D7B1; fmOutput = $D7B2; fmInOut = $D7B3;
在系统单元中搜索TTextRec以获取更多信息。
试试这个:
function IsFileInUse(fName: string) : boolean;
var
HFileRes: HFILE;
begin
Result := False;
if not FileExists(fName) then begin
Exit;
end;
HFileRes := CreateFile(PChar(fName)
,GENERIC_READ or GENERIC_WRITE
,0
,nil
,OPEN_EXISTING
,FILE_ATTRIBUTE_NORMAL
,0);
Result := (HFileRes = INVALID_HANDLE_VALUE);
if not(Result) then begin
CloseHandle(HFileRes);
end;
end;

