Как я могу создать точку соединения NTFS в Windows XP?
8 ответов
По умолчанию Windows XP не имеет инструментов для создания точки соединения. Этот инструмент (linkd
) является частью Windows Resource Kit Tools.
Еще один инструмент - перекресток от Марка Руссиновича.
Попробуйте утилиту соединения от Sysinternals, она доступна на W2k+
Является ли ваше определение точки соединения каталогом, который жестко связан с другим?
Если так просто
mklink /J <new directory to be linked> <target directory>
После этого нет различий между каталогами. У них одинаковый MFT_REF (с http://en.wikipedia.org/wiki/NTFS_symbolic_link).
fsutil
также может быть полезен для запроса точек повторной обработки и создания жестких ссылок.
Если вы хотите знать, как программно сделать это, вы можете использовать IOCTL-драйвер хранилища NTFS на дескрипторе тома. Но было бы проще просто позвонить mklink
.
Имейте в виду, что у вас должны быть права на запись и изменение для целевого каталога. Вам нужно будет запустить cmd.exe с повышенными правами для его работы.
Вы также можете использовать Link Shell Extension в качестве GUI-ориентированного интерфейса. Он может создавать переходы, жесткие ссылки и даже символические ссылки в Windows XP, если вы установите драйвер фильтра NTFS 5 от Masatoshi Kimura, как описано. http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
Вот "живая" ссылка для junction.exe.
НАТУРАЛЬНАЯ КОМАНДА Windows XP, 7, & 8:
Справочник Junction:
mklink /J <oldpath(link)> <newpath(target)>
Сделав newpath
абсолютным, вы сможете перемещать ссылку, не нарушая указатель на newpath
. Если вы сделаете относительный newpath
относительным, вы сможете предотвратить разрыв связи, если вы переместите ОБА ссылку и наметите ВМЕСТЕ и сохраните их относительные пути.
Вы можете соединить NTFS с помощью специального программного обеспечения. Я рекомендую Link Shell Extension (LSE). Это бесплатное и простое в использовании. Он также имеет хорошую документацию со скриншотами всех шагов.
Вы создаете точку соединения с
REPARSE_MOUNTPOINT_DATA_BUFFER* pReparseInfo = // ...
pReparseInfo->ReparseTag = IO_REPARSE_TAG_MOUNT_POINT;
// ...
DeviceIoControl(..., FSCTL_SET_REPARSE_POINTFSCTL_SET_REPARSE_POINT, pReparseInfo, ...
Вызов API. pReparseInfo
указывает на структуру REPARSE_MOUNTPOINT_DATA_BUFFER
вы должны предоставить.
В статье MSDN внизу страницы представлен фрагмент кода, предоставленный сообществом, в котором показано, как использовать API.