IsFileInUse will return true if the file is locked for exclusive access. It would fail if the file doesn't exist at all.
~~~~~~~~~~~~~~~~~~~~~~~~~ function IsFileInUse(fName : string) : boolean; var HFileRes : HFILE; begin Result := false; if not FileExists(fName) then exit; 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 CloseHandle ~~~~~~~~~~~~~~~~~~~~~~~~~