В ResourceKit-ах (начаная с RK для NT 4.0) есть утилита RM (для командной строки) для удаления файлов занятыми другими процессами. Удаление происходит после перезагрузки, когда никакие "лишние" процессы ещё не запущены. Ещё есть в РК утилита INUSE для перемешения таких файлов. В обоих случаях в реестр заноситься информация что куда перемещается (в случае удаления файл перемещается в NUL)
Можно зделать это через реестр:
раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
параметр PendingFileRenameOperations REG_MULTI_SZ
Строки добавляются парами, первая строка что переместить, вторая куда. Если вторая строка из пары пустаю - файл будет удалён. Например, в результате моего эксперимента получились четыре строки:
Код:
\??\D:\Tmp\JET79CE.tmp
\??\D:\Tmp\INU2D00.tmp
\??\D:\Tmp\JET79CE.tmp
(Вторая пустая)
Прописывается полный путь к файлам и добавляется \??\