Effets de liaison symbolique sur les fonctions des systèmes de fichiers

Plusieurs fonctions de fichier standard qui utilisent des noms de chemin d’accès pour spécifier un ou plusieurs fichiers sont affectées par l’utilisation de liens symboliques. Cette rubrique répertorie ces fonctions et décrit les changements de comportement :

Dans les descriptions ci-dessous, les termes suivants sont utilisés :

  • Fichier source : fichier d’origine à copier.
  • Fichier de destination : copie nouvellement créée du fichier.
  • Cible : entité vers laquelle pointe un lien symbolique.

Notes

Le comportement des fonctions qui acceptent un handle créé à l’aide de la fonction CreateFile , comme la fonction GetFileTime , diffère selon que la fonction CreateFile a été appelée ou non à l’aide de l’indicateur FILE_FLAG_OPEN_REPARSE_POINT . Pour plus d’informations, consultez CreateFile et la section CreateFile et CreateFileTransacted suivante.

 

CopyFile et CopyFileTransacted

Si le fichier source est un lien symbolique, le fichier réel copié est la cible du lien symbolique.

Si le fichier de destination existe déjà et qu’il s’agit d’un lien symbolique, la cible du lien symbolique est remplacée par le fichier source.

CopyFileEx

Si COPY_FILE_COPY_SYMLINK est spécifié et :

  • Si le fichier source est un lien symbolique, le lien symbolique est copié, et non le fichier cible.
  • Si le fichier source n’est pas un lien symbolique, il n’y a aucun changement de comportement.
  • Si le fichier de destination est un lien symbolique existant, le lien symbolique est remplacé, et non le fichier cible.
  • Si COPY_FILE_FAIL_IF_EXISTS est également spécifié et que le fichier de destination est un lien symbolique existant, l’opération échoue dans tous les cas.

Si COPY_FILE_COPY_SYMLINK n’est pas spécifié et :

  • Si COPY_FILE_FAIL_IF_EXISTS est également spécifié et que le fichier de destination est un lien symbolique existant, l’opération échoue uniquement si la cible du lien symbolique existe.
  • Si COPY_FILE_FAIL_IF_EXISTS n’est pas spécifié, il n’y a aucun changement de comportement.

Windows Server 2003 et Windows XP :L’indicateur COPY_FILE_COPY_SYMLINK n’est pas pris en charge. Si le fichier source est un lien symbolique, le fichier réel copié est la cible du lien symbolique.

CreateFile et CreateFileTransacted

Si l’appel à cette fonction crée un fichier, il n’y a aucun changement de comportement.

Si FILE_FLAG_OPEN_REPARSE_POINT est spécifié et :

  • Si un fichier existant est ouvert et qu’il s’agit d’un lien symbolique, le handle retourné est un handle vers le lien symbolique.
  • Si CREATE_ALWAYS, TRUNCATE_EXISTING ou FILE_FLAG_DELETE_ON_CLOSE sont spécifiés, le fichier affecté est un lien symbolique.

Si FILE_FLAG_OPEN_REPARSE_POINT n’est pas spécifié et :

  • Si un fichier existant est ouvert et qu’il s’agit d’un lien symbolique, le handle retourné est un handle à la cible.
  • Si CREATE_ALWAYS, TRUNCATE_EXISTING ou FILE_FLAG_DELETE_ON_CLOSE sont spécifiés, le fichier affecté est la cible.

Si le chemin pointe vers un lien symbolique, la fonction crée un lien dur vers la cible.

DeleteFile et DeleteFileTransacted

Si le chemin pointe vers un lien symbolique, le lien symbolique est supprimé, et non la cible. Pour supprimer une cible, vous devez appeler CreateFile et spécifier FILE_FLAG_DELETE_ON_CLOSE.

FindFirstChangeNotification

Si le chemin pointe vers un lien symbolique, le handle de notification est créé pour la cible. Si une application s’est inscrite pour recevoir des notifications de modification pour un répertoire qui contient des liens symboliques, l’application n’est avertie que lorsque les liens symboliques ont été modifiés, et non les fichiers cibles.

FindFirstFile et FindFirstFileTransacted

Si le chemin pointe vers un lien symbolique, la mémoire tampon WIN32_FIND_DATA contient des informations sur le lien symbolique, et non sur la cible.

FindFirstFileEx

Si le chemin pointe vers un lien symbolique, la mémoire tampon WIN32_FIND_DATA contient des informations sur le lien symbolique, et non sur la cible.

FindNextFile

Si le chemin pointe vers un lien symbolique, la mémoire tampon WIN32_FIND_DATA contient des informations sur le lien symbolique, et non sur la cible.

GetBinaryType

Si le chemin pointe vers un lien symbolique, le fichier cible est utilisé.

GetCompressedFileSize et GetCompressedFileSizeTransacted

Si le chemin pointe vers un lien symbolique, la fonction retourne la taille de fichier de la cible.

GetDiskFreeSpace

Si le chemin pointe vers un lien symbolique, l’opération est effectuée sur la cible.

GetDiskFreeSpaceEx

Si le chemin pointe vers un lien symbolique, l’opération est effectuée sur la cible.

GetFileAttributes

Si le chemin pointe vers un lien symbolique, la fonction retourne les attributs du lien symbolique.

GetFileAttributesEx

Si le chemin pointe vers un lien symbolique, la fonction retourne les attributs du lien symbolique.

GetFileSecurity

Si le chemin pointe vers un lien symbolique, la fonction retourne les attributs du lien symbolique.

GetTempPath

Si le chemin pointe vers un lien symbolique, le nom du chemin d’accès temporaire conserve tous les liens symboliques.

GetVolumeInformation

Si le chemin pointe vers un lien symbolique, la fonction retourne des informations de volume pour la cible.

SetFileAttributes

Si le chemin pointe vers un lien symbolique, la fonction récupère les attributs du lien symbolique.

SetFileSecurity

Si le chemin pointe vers un lien symbolique, la fonction retourne les attributs du lien symbolique.

CopyFile

CopyFileTransacted

CopyFileEx

CreateFile

CreateFileTransacted

CreateHardLink

CreateHardLinkTransacted

DeleteFile

DeleteFileTransacted

FindFirstChangeNotification

FindFirstFile

FindFirstFileEx

FindFirstFileTransacted

FindNextFile

GetBinaryType

GetCompressedFileSize

GetCompressedFileSizeTransacted

GetDiskFreeSpace

GetDiskFreeSpaceEx

GetFileAttributes

GetFileAttributesEx

GetFileSecurity

GetTempPath

GetVolumeInformation

SetFileAttributes

SetFileSecurity