Как отменить отложенную операцию MoveFileEx? - PullRequest
6 голосов
/ 15 октября 2011

Я использую приведенную ниже команду для удаления некоторых файлов после перезагрузки машины:

MoveFileEx(PChar(File_Address), Nil, MOVEFILE_DELAY_UNTIL_REBOOT);

Как я могу отменить выполнение этой команды и предотвратить удаление файлов после перезагрузки?

Ответы [ 2 ]

14 голосов
/ 15 октября 2011

Файлы, которые вы ставите в очередь для удаления таким образом, помещаются в реестр под HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations. Возможно, вы можете удалить записи оттуда, чтобы предотвратить удаление файлов. Я не мог найти функцию API для этого.

0 голосов
/ 16 октября 2011

Полагаю, вы могли бы скопировать файл (поскольку он еще не был удален), а затем использовать

MoveFileEx(copy_of_file, original_file, MOVEFILE_DELAY_UNTIL_REBOOT)

, чтобы вернуть его на место во время перезагрузки.

As KenОднако белые указали, что было бы намного лучше избежать этой ситуации.

...