Поделиться через


Функция CreateSymbolicLinkW (winbase.h)

Создает символьную ссылку.

Чтобы выполнить эту операцию как транзакцию, используйте функцию CreateSymbolicLinkTransacted .

Синтаксис

BOOLEAN CreateSymbolicLinkW(
  [in] LPCWSTR lpSymlinkFileName,
  [in] LPCWSTR lpTargetFileName,
  [in] DWORD   dwFlags
);

Параметры

[in] lpSymlinkFileName

Создаваемая символьная ссылка.

Этот параметр может включать путь.

По умолчанию имя ограничено MAX_PATH символами. Чтобы расширить это ограничение до 32 767 символов в ширину, добавьте к пути "\\?\". Дополнительные сведения см. в статье Именование файлов, путей и пространств имен.

Совет

Начиная с Windows 10 версии 1607, вы можете согласиться на удаление ограничения MAX_PATH без добавления "\\?\". Дополнительные сведения см. в разделе "Ограничение максимальной длины пути" статьи Именование файлов, путей и пространств имен .

[in] lpTargetFileName

Имя целевого объекта для создаваемой символьной ссылки.

Если с lpTargetFileName связано имя устройства, ссылка рассматривается как абсолютная связь; В противном случае ссылка обрабатывается как относительная связь.

Этот параметр может включать путь.

По умолчанию имя ограничено MAX_PATH символами. Чтобы расширить это ограничение до 32 767 символов в ширину, добавьте к пути "\\?\". Дополнительные сведения см. в статье Именование файлов, путей и пространств имен.

Совет

Начиная с Windows 10 версии 1607, вы можете согласиться на удаление ограничения MAX_PATH без добавления "\\?\". Дополнительные сведения см. в разделе "Ограничение максимальной длины пути" статьи Именование файлов, путей и пространств имен .

[in] dwFlags

Указывает, является ли целевой объект ссылки lpTargetFileName каталогом.

Значение Значение
0x0
Целевой объект ссылки — это файл.
SYMBOLIC_LINK_FLAG_DIRECTORY
0x1
Целевым объектом ссылки является каталог.
SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
0x2
Укажите этот флаг, чтобы разрешить создание символьных ссылок, если процесс не имеет повышенных привилегий. Режим разработчика должен быть сначала включен на компьютере, прежде чем этот параметр будет работать.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Символические ссылки могут быть абсолютными или относительными. Абсолютные ссылки — это ссылки, указывающие каждую часть имени пути; относительные ссылки определяются относительно того, где описатели относительные ссылки находятся в указанном пути. Относительные ссылки указываются с помощью следующих соглашений:

  • Соглашения о точках (. и ..), например ". \" разрешает путь относительно родительского каталога.
  • Имена без косой черты (\\) — например, tmp разрешает путь относительно текущего каталога.
  • Корневой относительный— например, "\Windows\System32" разрешается в "current drive:\Windows\System32".
  • Текущий рабочий каталог — относительный. Например, если текущим рабочим каталогом является C:\Windows\System32, "C:File.txt" разрешается в "C:\Windows\System32\File.txt".
    Примечание Если указать относительную связь текущего рабочего каталога, она создается как абсолютная связь из-за того, как текущий рабочий каталог обрабатывается на основе пользователя и потока.
     
Чтобы удалить символьную ссылку, удалите файл (с помощью DeleteFile или аналогичных API) или каталог (с помощью RemoveDirectory или аналогичных API) в зависимости от типа используемой символьной ссылки.

В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Да
Прозрачная отработка отказа (TFO) SMB 3.0 Да
SMB 3.0 с масштабируемыми общими папками (SO) Нет
Файловая система общего тома кластера (CSVFS) Нет
Восстанавливаемая файловая система (ReFS) Да
 

CsvFs не поддерживает программную ссылку или любые другие точки повторного анализа.

Примечание

Заголовок winbase.h определяет CreateSymbolicLink в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

CreateSymbolicLinkTransacted

Функции управления файлами

Символические ссылки