Мне кажется, что перенаправление папок изменяет следующие два ключа реестра, чтобы указать папки в другое место:
Во-первых, непонятно, почему он также редактирует папки Shell? Я думал, что это было давно, и «Папки пользовательской оболочки» в любом случае имеют приоритет.
Действительно ли это просто редактирование ключей реестра напрямую, и безопасно ли редактировать эти ключи напрямую?
Кроме того, если я редактирую его вручную, должен ли я вообще беспокоиться о редактировании папок оболочки, если папки пользовательской оболочки имеют приоритет?
Перенаправление папок хорошо задокументировано на Technet
О приоритете ключей реестра вы можете прочитать :
Записи в этом подразделе могут отображаться как в командной консоли. Подключ папки и папки пользовательской оболочки и в HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER. Записи, которые появляются в папках пользовательской оболочки пользователя имеют приоритет над папками в папках оболочки. Записи, которые появляются в HKEY_CURRENT_USER имеют приоритет над таковыми в HKEY_LOCAL_MACHINE.
Об обратной совместимости : здесь написано , что Windows 2000 (и я считаю, что более поздние версии тоже - документ довольно старый) не используйте ключи « Shell Folders » - это сделано для совместимости с NT 4. В старой документации для разработчиков я встречал предупреждение не использовать ключи « Shell Folders ». Теперь эта документация больше не доступна в MSDN.
В моей установке Windows 10 есть раздел реестра HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell Folders \! Не используйте этот раздел реестра
с value: «Используйте вместо этого функцию SHGetFolderPath или SHGetKnownFolderPath»
Дополнительная интересная информация по теме в действительно старом сообщении в блоге .