2

Я заметил, что я не могу использовать \\?\Volume{f993747a-5d7a-4de1-a97a-c20c1af1ba02}\path\to\target или \Device\HarddiskVolume5\path\to\target качестве целей быстрого доступа - это не будет работать. Это работает только тогда, когда я использую буквы дисков в абсолютных путях. Я не хочу использовать буквы дисков или относительные пути.

Могу ли я указать цель для ярлыка, который не сломается при изменении букв диска? Или я могу создать точку повторной обработки NTFS (например, точку соединения) для этого?

2 ответа2

2

Могу ли я создать ярлык, который указывает на определенный диск независимо от его буквы?

Я не хочу использовать буквы дисков или относительные пути

Тип целей, которые вы хотите использовать (\?\Volume{f993747a-5d7a-4de1-a97a-c20c1af1ba02}\path\to\target или \Device\HarddiskVolume5\path\to\target) не являются допустимыми целями для ярлыка.

Все действительные цели для ярлыков должны использовать один из типов, указанных ниже.


Элементы предпочтений ярлыка позволяют настроить ярлык для объекта файловой системы (например, файла, папки, диска, общего ресурса или компьютера), объекта оболочки (например, принтера, элемента рабочего стола или элемента панели управления) или URL (например, веб-страница или FTP-сайт).

Источник Настройка элемента ярлыка


Или я могу создать точку повторной обработки NTFS (например, точку соединения) для этого?

Вы можете использовать mklink для создания символической ссылки вида \\?\Volume{f993747a-5d7a-4de1-a97a-c20c1af1ba02}\path\to\target.txt

c:
md \test
cd \test
mklink testlink \\?\Volume{d1a54614-9369-11e4-b7ab-ccaf78b24c0a}\test\test.txt

Теперь каталог test содержит символическую ссылку (которая в моем случае указывает на файл f:\test\test.txt на внешнем диске).

C:\test>dir
 Volume in drive C has no label.
 Volume Serial Number is C8D0-DF1E

 Directory of C:\test

29/03/2015  23:24    <DIR>          .
29/03/2015  23:24    <DIR>          ..
29/03/2015  23:17    <SYMLINK>      testlink [\\?\Volume{d1a54614-9369-11e4-b7ab-ccaf78b24c0a}\test\test.txt]
               1 File(s)              0 bytes
               2 Dir(s)  248,410,976,256 bytes free

...

C:\test>type testlink
this file is test.txt
C:\test>

...

C:\test>type f:\test\test.txt
this file is test.txt
C:\test>

Заметка

  • Это работает, только если вы пытаетесь разыменовать ссылку из командной строки, но не если вы пытаетесь получить к ней доступ из интерфейса проводника.

Дальнейшее чтение

0

Это немного взломано и, возможно, небезопасно, но вы должны иметь возможность настроить общий доступ к корневой папке интересующего диска ( скажем , floatdrive ) с соответствующими разрешениями общего доступа, а затем создать все ярлыки / ссылки, используя сетевой синтаксис URL на localhost:

\\localhost\floatdrive\folder\or\file\of\interest.txt

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

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