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 :
- CopyFile et CopyFileTransacted
- CopyFileEx
- CreateFile et CreateFileTransacted
- CreateHardLink et CreateHardLinkTransacted
- DeleteFile et DeleteFileTransacted
- FindFirstChangeNotification
- FindFirstFile et FindFirstFileTransacted
- FindFirstFileEx
- FindNextFile
- GetBinaryType
- GetCompressedFileSize et GetCompressedFileSizeTransacted
- GetDiskFreeSpace
- GetDiskFreeSpaceEx
- GetFileAttributes
- GetFileAttributesEx
- GetFileSecurity
- GetTempPath
- GetVolumeInformation
- SetFileAttributes
- SetFileSecurity
- Rubriques connexes
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.
CreateHardLink et CreateHardLinkTransacted
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.
Rubriques connexes