Отложенное удаление (переименование) файлов в Windows |
Опубликовано d.mokshin в вс, 12/01/2014 - 13:22.
|
||
Бывает иногда нужно удалить файл, но он занят каким-то процессом. При попытке удаления Explorer ругается, что файл используется. Если процесс "неважный", то его можно удалить при помощи Диспетчера Задач, и, возможно, появится возможность работать с файлом. Но если файл используется системным процессом, то такой подход вряд ли сработает ;-) - даже не стоит его пробовать.
В этом случае можно попробовать удалить файл (или переименовать/переместить его) используя фичу ОС - определенное выполнение операций с фалами до полной загрузки системы и запуска всех процессов. Выполнить это можно при помощи параметра в реестре PendingFileRenameOperations.
Нужно в редакторе реестра (regedit) открыть ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager и создать под ним мультистроковый параметр (меню Правка/Создать/Мультистроковый параметр) PendingFileRenameOperations. Далее, нужно открыть этот параметр на редактирование (двойным щелчком мыши), и ввести в окне значений "файловые пАры". "Файловая пара" - это две строки: на одной - текущий путь к файлу, на второй - новое значение, куда его нужно переместить/переименовать. При этом значения путей должны начинаться с префикса \??\ . И, если нужно просто удалить файлы, то вторая строка в паре должна быть пустой (кое-где, например, здесь, почему-то предлагают вносить пары через пробел, а потом менять в двоичном виде знак пробела на код 0000, но, по-моему, всё работает успешно и с простым переносом строк).
Таким образом, например, значение, которое выглядит так:
\??\C:\test.txt
\??\C:\test1.txt
\??\C:\test1.bak
\??\C:\test2.txt
\??\C:\temp\test2.txt
приведет к следующим последствиям:
- файл C:\test.txt будет удален
- файл C:\test1.txt будет переименован в test1.bak
- файл C:\test2.txt будет перенесен из корневого каталога C:\ в C:\temp\
После редактирования ресстра, конечно, нужно перезагрузить компьютер.
Последние комментарии
1 год 36 нед. назад
1 год 36 нед. назад
1 год 36 нед. назад
1 год 36 нед. назад
1 год 38 нед. назад
1 год 38 нед. назад
1 год 39 нед. назад
2 гг. 6 час. назад
2 гг. 1 день назад
2 гг. 27 нед. назад