8

Я заметил, что Windows, кажется, способна создавать несколько различных типов ярлыков. В данный момент я пытаюсь понять ярлык папки, который существует в папке "Ярлыки сети" моего профиля. В проводнике Windows он отображается как папка с ярлыком наложения, в списке "Тип" - "Папка с файлами", и при двойном щелчке по нему открывается сетевое расположение. Просмотр его в powershell показывает, что это папка, а внутри нее файл "target.lnk".

Кроме того, я часто обнаруживаю, что в окне "Свойства" других ярлыков будет отсутствовать поле "Цель". Я думаю, что это могут быть ярлыки установщика Windows. Исключая соединения и символические ссылки, есть ли другие типы ярлыков? А еще лучше, есть ли какая-нибудь документация, на которую я могу посмотреть все эти списки?

* edit: более подробная информация ниже о типе ярлыков, которые меня интересуют.

Проводник видит папку (BShacklett) в качестве ярлыка. Powershell видит следующее:

Directory: C:\Users\bshacklett\AppData\Roaming\microsoft\windows\Network
Shortcuts\BShacklett


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
---hs        2012-06-11     10:50         75 desktop.ini
-a---        2012-06-11     10:50       1450 target.lnk

PS C:\Users\bshacklett\AppData\Roaming\microsoft\windows\Network Shortcuts> cat .\BShacklett\desktop.ini

[.ShellClassInfo]
CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}
Flags=2

3 ответа3

4

Там нет полного списка, но то, что вы смотрите, называется «папка-ярлык», папка, которая ведет себя как ярлык для другого объекта и недокументирована (по крайней мере, Microsoft).

Как вы видели, это обычная папка, которая содержит файлы desktop.ini и target.lnk . Файл .lnk - это обычный файл ярлыков, который должен называться target.lnk , а desktop.ini содержит следующее:

[.ShellClassInfo]
CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}
Flags=2

Вы можете увидеть некоторую информацию о том, как она обрабатывается Explorer, в следующей записи реестра:

HKCR\CLSID\{0AFACED1-E828-11D1-9187-B532F1E9575D}

По сути, они действуют как псевдоним для папки, за исключением того, что они автоматически не принимают макет реального. То есть, если вы активируете и изменяете размер столбцов в папке, затем создаете для нее ярлык папки, открывая папку с помощью ярлыка папки, вы увидите фактическое содержимое исходной папки, но конфигурацию колонок (и другие такие атрибуты, как положение окна и т. д.) будут значениями по умолчанию, а не настроенными - при открытии исходной папки обычными средствами (напрямую, с помощью ярлыка файла и т. д.) будет отображаться ее с настройками.

Как можно догадаться по тому факту, что идентификатор класса, используемый для создания ярлыков папок, указывает на shell32.dll , они разрешаются только в Explorer и обрабатываются интерпретатором команд (и PowerShell) как обычные каталоги.

Они не часто используются на практике, но они могут быть несколько полезны и почти похожи на псевдоним, что хорошо, потому что старые версии Windows (такие как ME, 2000 и XP) не поддерживали некоторые типы псевдонимов, если вообще их поддерживали. Один из способов, которым они создаются автоматически Проводником, - это когда вы перетаскиваете папку в меню «Пуск». Когда вы перетаскиваете папку в другую папку, панель быстрого запуска и т.д., Создается обычный ярлык файла к папке, но когда вы перетаскиваете его в меню «Пуск», создается ярлык папки, который позволяет подменю (то есть расширяемое).

Стоит отметить, что, хотя вы можете использовать их для создания расширяемых меню, они ведут себя только как этот одноуровневый. Следовательно, создание ярлыка папки для папки, помещение ее в другую папку, а затем создание ярлыка папки для этой папки и размещение его в меню не позволят создать расширяемое меню на три уровня. Вместо этого вы получите меню, которое содержит папку, которая раскрывается, чтобы показать другую папку, которая раскрывается, чтобы отобразить ярлык с именем target .

1

В дополнение к 4 типам, перечисленным в @Maximus, есть 5-й тип, которые представляют собой "специальные" системные ярлыки, определенные в реестре.

Примеры этого включают такие вещи, как "библиотеки" в Windows 7, шрифты, принтеры и т.д.

.lnk и Junctions специфичны для Windows (раздел NTFS). Жесткие и символические ссылки также встречаются во многих других файловых системах, включая все UNIX-подобные ОС (Linux, BSD, Mac и т.д.).

Жесткие и символические ссылки могут быть установлены только из командной строки с помощью собственных инструментов Windows. Но есть отличная надстройка для Windows Explorer, которая позволяет создавать их. Соединения могут быть созданы из командной строки или из дисковой утилиты панели управления Windows. Ссылки Lnk зависят от проводника Windows.

Я предпочитаю использовать символические ссылки для большинства целей. Они хорошо работают в смешанных ОС и работают с большинством программ Windows.

1

Существуют Shortcuts которые представляют собой просто файлы *.lnk , и Junction/Hard link/Symbolic link которые являются объектами NTFS. Не смешивайте их.

Shortcuts могут быть нацелены на Paths (файлы и папки) и PIDL's (которые нельзя редактировать в интерфейсе проводника).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .