В Windows NT 4/2000 есть такая API функция, имеющая очень интересный последний аргумент. Функция позволяет также переименовывать указанный файл или директорию.
MoveFileEx(ExistingFN, NewFN, MOVEFILE_REPLACE_EXISTING или MOVEFILE_DELAY_UNTIL_REBOOT
Если задать MOVEFILE_DELAY_UNTIL_REBOOT в dwFlags (характерно для Windows NT 4/2000), то в реестр будет занесена специальная информация и после перезагрузки Windows сотрёт или перепишет указанный файл
Параметры:
Пример:
MoveFileEx('c:winntsystem32kernel32.dll', 'd:winnt.baksystem32kernel32.dll', MOVEFILE_REPLACE_EXISTING или MOVEFILE_DELAY_UNTIL_REBOOT
MoveFileEx('c:winntsystem32kernel32.dll', nil, MOVEFILE_REPLACE_EXISTING или MOVEFILE_DELAY_UNTIL_REBOOT