Función CreateSymbolicLinkA (winbase.h)

Crea un vínculo simbólico.

Para realizar esta operación como una operación de transacción, use la función CreateSymbolicLinkTransacted .

Sintaxis

BOOLEAN CreateSymbolicLinkA(
  [in] LPCSTR lpSymlinkFileName,
  [in] LPCSTR lpTargetFileName,
  [in] DWORD  dwFlags
);

Parámetros

[in] lpSymlinkFileName

Vínculo simbólico que se va a crear.

Este parámetro puede incluir la ruta de acceso.

De forma predeterminada, el nombre está limitado a MAX_PATH caracteres. Para ampliar este límite a 32 767 caracteres anchos, anteponga "\\?\" a la ruta de acceso. Para obtener más información, vea Nomenclatura de archivos, rutas de acceso y espacios de nombres.

Sugerencia

A partir de Windows 10, versión 1607, puede optar por quitar la limitación de MAX_PATH sin prepending "\\?\". Consulte la sección "Limitación máxima de longitud de ruta de acceso" de Nombres de archivos, rutas de acceso y espacios de nombres para obtener más información.

[in] lpTargetFileName

Nombre del destino del vínculo simbólico que se va a crear.

Si lpTargetFileName tiene un nombre de dispositivo asociado, el vínculo se trata como un vínculo absoluto; de lo contrario, el vínculo se trata como un vínculo relativo.

Este parámetro puede incluir la ruta de acceso.

De forma predeterminada, el nombre está limitado a MAX_PATH caracteres. Para ampliar este límite a 32 767 caracteres anchos, anteponga "\\?\" a la ruta de acceso. Para obtener más información, vea Nomenclatura de archivos, rutas de acceso y espacios de nombres.

Sugerencia

A partir de Windows 10, versión 1607, puede optar por quitar la limitación de MAX_PATH sin prepending "\\?\". Consulte la sección "Limitación máxima de longitud de ruta de acceso" de Nombres de archivos, rutas de acceso y espacios de nombres para obtener más información.

[in] dwFlags

Indica si el destino del vínculo, lpTargetFileName, es un directorio.

Valor Significado
0x0
El destino del vínculo es un archivo.
SYMBOLIC_LINK_FLAG_DIRECTORY
0x1
El destino del vínculo es un directorio.
SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
0x2
Especifique esta marca para permitir la creación de vínculos simbólicos cuando no se eleva el proceso. En UWP, el modo de desarrollador debe estar habilitado primero en la máquina antes de que esta opción funcione. En MSIX, no es necesario habilitar el modo de desarrollador para esta marca.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Los vínculos simbólicos pueden ser absolutos o relativos. Los vínculos absolutos especifican cada parte del nombre de la ruta de acceso; los vínculos relativos se determinan en función de dónde se encuentren los especificadores de vínculos relativos en una ruta de acceso especificada. Los vínculos relativos se especifican con las siguientes convenciones:

  • Convenciones de puntos (. y ..): por ejemplo, ".. \" resuelve la ruta de acceso relativa al directorio primario.
  • Nombres sin barras diagonales (\\):por ejemplo, "tmp" resuelve la ruta de acceso relativa al directorio actual.
  • Relativo raíz: por ejemplo, "\Windows\System32" se resuelve en "unidad actual:\Windows\System32".
  • Directorio de trabajo actual relativo, por ejemplo, si el directorio de trabajo actual es C:\Windows\System32, "C:File.txt" se resuelve en "C:\Windows\System32\File.txt".
    Nota Si especifica un vínculo relativo al directorio de trabajo actual, se crea como un vínculo absoluto, debido a la forma en que se procesa el directorio de trabajo actual en función del usuario y del subproceso.
     
Para quitar un vínculo simbólico, elimine el archivo (mediante DeleteFile o API similares) o quite el directorio (mediante RemoveDirectory o API similares) en función del tipo de vínculo simbólico que se use.

En Windows 8 y Windows Server 2012, esta función es compatible con las tecnologías siguientes.

Tecnología Compatible
Protocolo Bloque de mensajes del servidor (SMB) 3.0
Conmutación por error transparente (TFO) de SMB 3.0
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO) No
Sistema de archivos de Volumen compartido de clúster (CsvFS) No
Sistema de archivos resistente a errores (ReFS)
 

CsvFs no admite ningún vínculo flexible ni ningún otro punto de reanálisis.

Nota

El encabezado winbase.h define CreateSymbolicLink como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winbase.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

CreateSymbolicLinkTransacted

Funciones de administración de archivos

Vínculos simbólicos