Частенько возникает ситуация, когда операционная система Windows ни за какие коврижки не соглашается удалить файл. Как правило, это свидетельствует о том, что объект уже занят одним из запущенных процессов. А как узнать, каким именно?

Очень просто: при помощи бесплатной утилиты WhoLockMe (74 кб). Проверим?

 
Моделируем исходную критическую ситуацию, добиваясь следующей картины:



Далее скачиваем архив с программой, распаковываем в выбранную директорию и запускаем файл install.bat для регистрации библиотеки wholockme.dll в системе. Напомним, что утилита работоспособна только в ОС Windows линейки NT.

Теперь, зайдя в "Проводник" и кликнув правой кнопкой мыши по любому объекту на жестком диске (будь то файл или отдельная папка), можно в контекстном меню обнаружить опцию "Who Lock Me?", активация которой выдаст полный список процессов, "удерживающих" данные.



Доступна следующая информация:

Locker Name - имя процесса, заблокировавшего файл
PID - идентификатор процесса
Opened File - название открытого файла
Handle - дескриптор файла
Domain/User - данные о пользователе и домене, в котором он работает
Locker Full Path - полный путь к исполняемому файлу или модулю процесса
И это не все. Есть еще магическая кнопка Kill Process, позволяющая "прихлопнуть" любой выбранный процесс. Возможен выбор сразу нескольких объектов (это достигается удерживанием клавиши Ctrl).

Ну, что можно еще добавить? WhoLockMe - без сомнения, полезный инструмент, который сгодится в хозяйстве любому пользователю, а уж системным администраторам - тем более. Жаль только, что развитие утилиты застыло на стадии бета-версии еще три года назад...