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


Функция 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.

Замечания

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

  • Соглашения dot (и ..) — например, ".. \" разрешает путь относительно родительского каталога.
  • Имена без косой черты (\\), например tmp, разрешают путь относительно текущего каталога.
  • Корневой относительный — например, "\Windows\System32" разрешается в "текущий диск:\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 Да
Отработка отказа SMB 3.0 (TFO) Да
SMB 3.0 с масштабируемыми общими папками (SO) Нет
Файловая система общего тома кластера (CSVFS) Нет
Отказоустойчивая файловая система (ReFS) Да
 

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

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2008 [только классические приложения]
целевая платформа Виндоус
заголовка winbase.h (включая Windows.h)
библиотеки Kernel32.lib
DLL Kernel32.dll

См. также

CreateSymbolicLinkTransacted

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

символьные ссылки