FSF.MkLink

Programming Far Manager plugins

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 существует, но не пустой каталог.

Примечание

  1. Ссылки создаются по следующим правилам:
    • жёсткие ссылки (hardlink) создаются только для файлов в пределах текущего NTFS-раздела;
    • связи (junction) создаются только для каталогов в пределах локальных NTFS-разделов;
    • монтирование локальных дисков на файловую систему только на NTFS-раздел.
  2. Если в качестве Target было передано значение, например L"C:", то вместо связи каталогов будет монтирован диск.
  3. Если для монтирования диска LinkName оканчивается слешем, то в LinkName будет создан каталог "disk_N" (где N - буква диска).
  4. В Windows 2000 напрямую делать связи на папки CD-ROM нельзя, но можно это ограничение обойти, смонтировав CD-ROM диск на папку NTFS-раздела (т.н. Mount Points). И уже из этой папки сделать нужную связь.

Пример

Смотрите также: