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). И уже из этой папки сделать нужную связь.
Пример
Смотрите также: