我即将为我们的软件实现一项新功能,即在用户打开文档时锁定文档(之前我们只是打开文件进行读取或写入,但在此期间没有保持句柄打开)。
保留句柄并以独占模式打开它是微不足道的。
我的问题是如何查询窗口以发现给定文件是否无法通过写访问打开,哪个用户/实体已经锁定了文件以进行写访问?
例如:
_fsopen(m_ClipboardFilename, "wb", _SH_DENYWR);
或者
CStdioFile listFile(strLabelfile, CFile::typeText | CFile::modeRead | CFile::shareDenyWrite | CFile::modeNoInherit);
其中任何一个都以独占写入访问权限打开给定文件(或失败并显示错误指示是否存在共享冲突或其他问题)。
但是我想要做的是发现“谁”锁定了文件,如果它是共享冲突,那么我可以向当前用户报告
Sam 在 PC-007 上已锁定此文件,您只能以只读模式打开它。你要继续吗?
我见过一些实用程序,它们会告诉你谁锁定了文件——还有更多会强制解锁锁,以便可以操作文件(sys-admin 类型的实用程序)。因此,似乎必须有一种方法可以查询此信息。