MoveFileEx с MOVEFILE_DELAY_UNTIL_REBOOT не влияют на Win2008 - PullRequest
0 голосов
/ 22 февраля 2010

Я использую функцию MoveFileEx Windows API в Windows 2008 с параметром MOVEFILE_DELAY_UNTIL_REBOOT при попытке переместить файл: C: \ a.txt в C: \ b.txt. При использовании regedit.exe я вижу, что записи вставляются в правильное расположение реестра (System \ CurrentControlSet \ Control \ Session Manager \ AllowProtectedRenames) в соответствии с документацией Microsoft, но после перезагрузки переименование по-прежнему не происходит. В чем может быть причина этого? Возможно ли предпринять дополнительные шаги на Win2008?

1 Ответ

0 голосов
/ 23 февраля 2010

Хорошо, так получается, что Windows поймали меня на присоску. C: \ a.txt на самом деле был C: \ a.txt.txt из-за приятных маленьких окон возможностей «скрывать расширения файлов для известных типов файлов» ... aaargh !!

Также обратите внимание, что это работает, только если файлы находятся на одном и том же томе, поскольку вы не можете использовать опцию MOVEFILE_COPY_ALLOWED при использовании MOVEFILE_DELAY_UNTIL_REBOOT.

...