Я собираюсь реализовать для нашего программного обеспечения новую функцию блокировки наших документов, пока пользователь их открывает (ранее мы просто открывали файл для чтения или для записи, но не держали ручку открытой в течение продолжительного времени).
Тривиально хранить дескриптор и открывать его в режиме исключительной записи.
Мой вопрос заключается в том, как запросить окна, чтобы определить, нельзя ли открыть данный файл с доступом для записи,какой пользователь / объект уже заблокировал файл для доступа на запись?
например:
_fsopen(m_ClipboardFilename, "wb", _SH_DENYWR);
Или
CStdioFile listFile(strLabelfile, CFile::typeText | CFile::modeRead | CFile::shareDenyWrite | CFile::modeNoInherit);
Любой из этих способов открывает данный файл с эксклюзивной записьюдоступ (или не удается с ошибкой, указывающей, имело ли место нарушение общего доступа или какая-либо другая проблема).
Но я хочу выяснить, у кого файл заблокирован, если это нарушение общего доступа, поэтомуЯ могу сообщить текущему пользователю, что
Сэм на ПК-007 заблокировал этот файл, открыть его можно только в режиме только для чтения.Вы хотите продолжить?
Есть утилиты, которые я видел, которые скажут вам, у кого файл заблокирован - и еще, которые заставят блокировки быть разблокированными, чтобы можно было манипулировать файлом (sys-admin type utils).Так что, похоже, должен быть способ запросить эту информацию.