Файлы Win32 заблокировали для чтения: как узнать, кто блокирует их

В C++ (конкретно на Visual C++), иногда Вы не можете открыть файл, потому что другому исполняемому файлу открыли его и не совместно использует его для чтений. Если я пытаюсь открыть такой файл, как я могу программно узнать, кто блокирует файл?

7
задан Pascal Cuoq 2 January 2010 в 03:53
поделиться

2 ответа

В ОС Windows 2000 и выше это невозможно сделать без использования драйвера режима ядра. Для этого Проводник процессов и другие подобные инструменты загружают драйвер автоматически. Это происходит потому, что файловые драйверы находятся в пространстве ядра и недоступны приложениям пользовательского режима (EXE-файлам).

Если вы действительно заинтересованы в этом, взгляните на этот проект .

12
ответ дан 6 December 2019 в 12:51
поделиться

Утвержденный MSDN способ - IFileIsInUse :: GetAppName () . Однако требуется Vista.

4
ответ дан 6 December 2019 в 12:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: