Чисто символическиВчера моя кузина посетовала, что не может найти на диске фотки, которые были переброшены с фотокамеры программой, шедшей вместе с камерой Canon. «Почему-то в My Pictures фотки не попадают, хотя куда-то копируются»- пожаловалась она. Фотографии, конечно, нашлись, и ютились они по адресу C:\Documents and Settings\Anne\My Documents\My Pictures.
На первый взгляд, так и должно быть, но дело в том, что документы и фотки у нее хранятся на другом, не системном разделе D:\. Открывая папку My Pictures, она и попадает на другой раздел. Поскольку перенаправление пользовательских папок было выполнено правильно, оставалось предположить, что в программе Canon жестко зашит путь %userprofile%\My Documents\My Pictures. Однако на вопрос «Какой именно программой ты пользуешься?» кузина пожала плечами — мол, подключаю камеру и все делается само

Камеры у нее тоже с собой не было, так что сэмулировать ситуацию я не мог.
Мы пойдем другим путемМожно было, конечно, вычислить программу, покопаться в ее настройках и указать там путь для размещения фоток, но учитывая происходящее, я усомнился, что программа этот путь запомнит (и был прав; как мне позже сказал брат, он уже указывал программе правильный путь, но после перезапуска все возвратилось на круги своя).
Я сразу решил идти другим, более быстрым путем — просто перенаправить папку C:\Documents and Settings\Anne\My Documents\My Pictures в нужное расположение на диске D. Достигается это созданием символической ссылки. Фактически символическая ссылка перенаправляет одну папку в другую. Поскольку такие ссылки работают на уровне файловой системы, программы и не подозревают, что работают с другой папкой — им все так же доступна исходная папка по прежнему пути.
Создание символической ссылкиЕсли бы я работал в Windows Vista или Windows 7, я бы обошелся командой mklink. Синтаксис такой:
- Код: выделить все
MKLINK [[/D] | [/H] | [/J]] Ссылка Назначение
/D Создание символической ссылки на каталог.
По умолчанию создается символическая ссылка на файл.
/H Создание жесткой связи вместо символической ссылки.
/J Создание соединения для каталога.
Ссылка Имя новой символической ссылки.
Назначение Путь (относительный или абсолютный), на который ссылается
новая ссылка.
Подробнее об этой команде можно почитать в статье Марка Руссиновича на Technet. Но я работал в XP, где проще всего для этой цели воспользоваться утилитой все того же Марка — Junction. Синтаксис простой:
- Код: выделить все
1
junction <Ссылка> [<Назначение>]
т. е. сначала указывается исходная папка, а потом целевая. Если в пути содержатся пробелы (как это было в моем случае), его нужно заключить в кавычки. Так или иначе, этот способ сработает в Windows 2000 и новее.
Варианты применения символических ссылокДля чего еще можно использовать символические ссылки? Да для чего угодно, когда вам нужно отобразить содержимое папки в другом месте диска. Например, у меня несколько проектов раскиданы по разным папкам, где много других второстепенных файлов. Для удобства бэкапа мне удобнее было бы видеть все проекты в одном месте, скажем в D:\4Backup. Нет проблем! В D:\4Backup создаются папки-ссылки на папки проектов. Теперь, если я, скажем, захочу прожечь все проекты на DVD, мне не нужно будет ползать по диску, собирая нужные папки — все сосредоточено в одном месте