Как я могу создать точку соединения NTFS в Windows XP?
Как я могу создать точку соединения NTFS в Windows XP?
Ответы:
По умолчанию 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
также может быть полезным для запроса точек повторного анализа и создания жестких ссылок.
Если вы хотите знать, как программно сделать это, вы можете использовать драйверы хранилища NTFS для вызовов IOCTL на дескрипторе тома. Но было бы проще просто позвонить mklink
.
Имейте в виду, что у вас должны быть права на запись и изменение для целевого каталога. Вам нужно будет запустить cmd.exe с повышенными правами для его работы.
mklink
я не верю в winxp
fsutil reparsepoint delete the_directory-junction_you_made_to_test_this
. У вас будет отдельный и, вероятно, пустой узел каталога.
Вы также можете использовать Link Shell Extension в качестве GUI-ориентированного интерфейса. Он может создавать соединения, жесткие ссылки и даже символические ссылки в Windows XP, если вы устанавливаете драйвер фильтра NTFS 5 от Masatoshi Kimura, как описано. http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
Вот "живая" ссылка для junction.exe.
Справочник Junction :
mklink /J <oldpath(link)> <newpath(target)>
Сделав newpath
абсолют, вы сможете перемещать ссылки, не ломая указатель на newpath
. Если вы сделаете newpath
родственника, вы сможете предотвратить разрыв ссылки, если вы переместите ОБА ссылку и наметите ВМЕСТЕ и сохраните их относительные пути.
Вы создаете точку соединения с
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.
Вы можете соединить NTFS с помощью специального программного обеспечения. Я рекомендую Link Shell Extension (LSE) . Это бесплатное и простое в использовании. Он также имеет хорошую документацию со скриншотами всех шагов.