
Как работают ярлыки, когда файл, на который они указывают, обновлен? Согласно веб-сайту Microsoft, они не должны работать, если исходный файл был перемещен, и я всегда так думал, но на днях я переместил некоторые файлы в подпапку и был удивлен, когда ярлыки к ним все еще работали.
Работает ли это только при перемещении во вложенную папку?
Есть ли способ (включая сторонние программы) переместить исходные файлы так, чтобы все ярлыки продолжали работать?
решение1
Я просто процитирую Рэймонда Ченаобъяснениездесь:
Эта функция появилась еще в Windows 95. Если цель ярлыка больше не существует, оболочка пытается разрешить ярлык, т. е. найти объект, куда бы он ни переместился.Как я уже объяснял за несколько месяцев до того, как был опубликован вопрос, алгоритм, используемый оболочкой, зависит от операционной системы, файловой системы и политик вашего домена. Возможно, также от фазы луны, в этом никогда нельзя быть уверенным.
Это не значит, что Explorer на самом деле отслеживает файлы, когда они перемещаются, просто на тот случай, если у вас есть ярлык для них. Скорее, ярлык запоминает достаточно информации о файле, так что если файл перемещается, Explorer может попытаться найти его.
Тот факт, что ярлыки могут разрешать цели, означает, что ярлыки являются удобным инструментом для отслеживания файлов, которые могут перемещаться. Если вы хотите отслеживать файл, вы можете просто создать ярлык для него (вам даже не нужно сохранять его в файле), и когда придет время найти файл, вы просто разрешите ярлык.
Обязательно прочтите также связанную статью Windows Confidential для получения более подробной информации, особенно относительно службы отслеживания распределенных ссылок NT.