检查文件是否在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;