MkLink
Функция
FSF.MkLink
создаёт жёсткие и символические ссылки, связи каталогов, а также монтирует локальные диски на файловую систему.
BOOL WINAPI MkLink( const wchar_t *Target, const wchar_t *LinkName, enum LINK_TYPE LinkType, MKLINK_FLAGS Flags );
Параметры
Target
Имя файлового объекта, на который создаётся ссылка.
LinkName
Имя создаваемой ссылки.
LinkType
Тип операции. Одно из (перечисление LINK_TYPE):
Операция | Описание |
---|---|
LINK_HARDLINK | создать жёсткую ссылку (hardlink) |
LINK_JUNCTION | создать связь каталогов (junction) |
LINK_VOLMOUNT | монтировать локальный диск на файловую систему |
LINK_SYMLINKFILE | создать символическую ссылку-файл |
LINK_SYMLINKDIR | создать символическую ссылку-каталог |
LINK_SYMLINK | автоматически выбрать тип создаваемой символической ссылки |
Flags
Флаг, одно из (тип MKLINK_FLAGS):
Флаг | Описание |
---|---|
MLF_SHOWERRMSG | выводить сообщения об ошибках |
MLF_DONOTUPDATEPANEL | после создания ссылки не обновлять панели |
MLF_HOLDTARGET | для символических ссылок не конвертировать Target в полный путь |
MLF_NONE | нулевой флаг |
Возвращаемое значение
1
- ссылка создана.
0
- ошибка при создании ссылки:
- Для жёстких ссылок:
- Target или LinkName находятся на разных разделах;
- раздел не NTFS;
- раздел не локальный;
- Target не существует или не является файлом.
- LinkName уже существует;
- Для связей:
- Target или LinkName находятся не на локальных разделах;
- раздел не NTFS 5.0;
- Target не существует или не является каталогом;
- LinkName существует, но не пустой каталог.
- Для монтирования дисков:
- Target или LinkName находятся не на локальных разделах;
- раздел для LinkName не NTFS 5.0;
- Src не существует или диск является не локальным;
- LinkName существует, но не пустой каталог.
Примечание
- Ссылки создаются по следующим правилам:
- жёсткие ссылки (hardlink) создаются только для файлов в пределах текущего NTFS-раздела;
- связи (junction) создаются только для каталогов в пределах локальных NTFS-разделов;
- монтирование локальных дисков на файловую систему только на NTFS-раздел.
- Если в качестве Target было передано значение, например L"C:", то вместо связи каталогов будет монтирован диск.
- Если для монтирования диска LinkName оканчивается слешем, то в LinkName будет создан каталог "disk_N" (где N - буква диска).
- В Windows 2000 напрямую делать связи на папки CD-ROM нельзя, но можно это ограничение обойти, смонтировав CD-ROM диск на папку NTFS-раздела (т.н. Mount Points). И уже из этой папки сделать нужную связь.
Пример
Смотрите также: