ProfiPHPProfiPHP
Категория: Прочее

Создание символьной ссылки в среде Windows

Простой пользователь вряд ли имеет понятия, что такое Символьные ссылки и для чего они нужны. А все потому, что вариантов их использования не так уж и много. Но все же, в некоторых случаях без их просто не обойтись. Примером использования символьных ссылок может быть перенос части программы на RAM-диск с созданием на ее ссылки. Что такое RAM-диск и как его создать прочитайте в публикации: ImDisk - программа для создания RAM-дисков.

Символьная ссылка (Symbolic link) являет собой указатель, специальный файл в файловой системе, который указывает путь к файлу, который должен быть открыт при попытке обратиться к данной ссылке (файлу). При обращении к этому файлу, операционная система ведет себя точно так же, как и обращение к файлу, на который ссылается символьная ссылка.

Сейчас продемонстрирую полностью рабочий пример. Он далек от идеала, но полностью продемонстрирует суть использования символических ссылок.

Допустим, мы установили игру "Гарри Поттер" в директорию:
C:\Games\HarryPotter
В директории с игрой находится папка "Textures", в которой сохраняются соответственно графические данные.

С помощью RAM-диска, создание которого описано в статье, ссылка на которую написана выше, мы создадим диск "F:/". Перенесем на новый диск папку "Textures". Данным действием мы разделили местоположение игры на 2 диска. Теперь нам осталось создать символическую ссылку на старом месте, которая будет указывать на данную папку, но уже на диске "F:/".

Данную операцию можно осуществить с помощью команды MKLINK. Она имеет следующие параметры:
MKLINK [[/D] | [/H] | [/J]] Ссылка Назначение
По умолчанию создается символическая ссылка на файл. Но с помощью параметра "/D" можно создать символическую ссылку на каталог. Параметр "/H" создает жесткую связь вместо символической ссылки. Параметр "/J" создает соединения для каталога.

Открываем командную строку, для этого жмем "Win+R" и в открывшемся окне пишем "cmd". В командной строке вводим:
mklink /j "C:\Games\HarryPotter\Textures" "F:\Textures"

где "C:\Games\HarryPotter\Textures" - место создания файла с символьной ссылкой, "F:\Textures" - путь, на который ссылается символьная ссылка.

После успешного завершения вы увидите сообщение:
соединение создано для C:\Games\HarryPotter\Textures <<===>> F:\Textures
Если посмотреть в папку с игрой, мы увидим только что созданную символическую ссылку:

Главное отличие символьной ссылки от обычного ярлыка состоит в том, что если зайти в папку "Textures", система будет считать, что вы находитесь именно на диске "C:/" в папке "Textures", но на самом деле вы будете видеть и работать с файлами, которые находятся на диске "D:/" в папке "Textures".

Добавить комментарий

Имя:
Текст комментария: