CreateSymbolicLinkA, fonction (winbase.h)

Crée un lien symbolique.

Pour effectuer cette opération en tant qu’opération traitée, utilisez la fonction CreateSymbolicLinkTransacted .

Syntaxe

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

Paramètres

[in] lpSymlinkFileName

Lien symbolique à créer.

Ce paramètre peut inclure le chemin d’accès.

Par défaut, le nom est limité à MAX_PATH caractères. Pour étendre cette limite à 32 767 caractères larges, ajoutez « \\ ?\ » au chemin d’accès. Pour plus d’informations, consultez Nommage de fichiers, de chemins et d’espaces de noms.

Conseil

À compter de Windows 10, version 1607, vous pouvez choisir de supprimer la limitation MAX_PATH sans précédencer « \\ ?\ ». Pour plus d’informations, consultez la section « Limitation maximale de la longueur du chemin d’accès » de Naming Files, Paths et Namespaces .

[in] lpTargetFileName

Nom de la cible pour le lien symbolique à créer.

Si lpTargetFileName est associé à un nom d’appareil, le lien est traité comme un lien absolu ; sinon, le lien est traité comme un lien relatif.

Ce paramètre peut inclure le chemin d’accès.

Par défaut, le nom est limité à MAX_PATH caractères. Pour étendre cette limite à 32 767 caractères larges, ajoutez « \\ ?\ » au chemin d’accès. Pour plus d’informations, consultez Nommage de fichiers, de chemins et d’espaces de noms.

Conseil

À compter de Windows 10, version 1607, vous pouvez choisir de supprimer la limitation MAX_PATH sans précédencer « \\ ?\ ». Pour plus d’informations, consultez la section « Limitation maximale de la longueur du chemin d’accès » de Naming Files, Paths et Namespaces .

[in] dwFlags

Indique si la cible de lien, lpTargetFileName, est un répertoire.

Valeur Signification
0x0
La cible de lien est un fichier.
SYMBOLIC_LINK_FLAG_DIRECTORY
0x1
La cible de lien est un répertoire.
SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
0x2
Spécifiez cet indicateur pour permettre la création de liens symboliques lorsque le processus n’est pas élevé. Dans UWP, le mode développeur doit d’abord être activé sur l’ordinateur pour que cette option fonctionne. Sous MSIX, le mode développeur n’est pas obligatoirement activé pour cet indicateur.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Les liens symboliques peuvent être des liens absolus ou relatifs. Les liens absolus sont des liens qui spécifient chaque partie du nom du chemin ; les liens relatifs sont déterminés par rapport à l’emplacement où les spécificateurs de lien relatif se trouvent dans un chemin spécifié. Les liens relatifs sont spécifiés à l’aide des conventions suivantes :

  • Conventions de point (. et ..). Par exemple, « ..\ » résout le chemin par rapport au répertoire parent.
  • Noms sans barres obliques (\\) : par exemple, « tmp » résout le chemin d’accès relatif au répertoire actif.
  • Parent racine, par exemple, « \Windows\System32 » est résolu en « lecteur actuel :\Windows\System32 ».
  • Répertoire de travail actuel relatif, par exemple, si le répertoire de travail actuel est C :\Windows\System32, « C:File.txt » se résout en « C:\Windows\System32\File.txt ».
    Remarque Si vous spécifiez un lien par rapport au répertoire de travail actuel, il est créé en tant que lien absolu, en raison de la façon dont le répertoire de travail actuel est traité en fonction de l’utilisateur et du thread.
     
Pour supprimer un lien symbolique, supprimez le fichier (à l’aide de DeleteFile ou d’API similaires) ou supprimez le répertoire (à l’aide de RemoveDirectory ou d’API similaires) en fonction du type de lien symbolique utilisé.

Dans Windows 8 et Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.

Technologie Prise en charge
Protocole Server Message Block (SMB) 3.0 Oui
Basculement transparent SMB 3.0 (TFO) Oui
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) No
Système de fichiers du volume partagé de cluster (CsvFS) No
Système de fichiers résilient (ReFS) Oui
 

CsvFs ne prend pas en charge la liaison réversible ou tout autre point d’analyse.

Notes

L’en-tête winbase.h définit CreateSymbolicLink comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

CreateSymbolicLinkTransacted

Fonctions de gestion des fichiers

Liens symboliques