Partager via


Fonction SetFileShortNameA (winbase.h)

Définit le nom abrégé du fichier spécifié. Le fichier doit se trouver sur un volume de système de fichiers NTFS.

Syntaxe

BOOL SetFileShortNameA(
  [in] HANDLE hFile,
  [in] LPCSTR lpShortName
);

Paramètres

[in] hFile

Descripteur du fichier. Le fichier doit être ouvert avec le droit d’accès GENERIC_ALL ou GENERIC_WRITE|DELETE, et avec l’attribut fichier FILE_FLAG_BACKUP_SEMANTICS .

[in] lpShortName

Pointeur vers une chaîne qui spécifie le nom court du fichier.

La spécification d’une chaîne vide (de longueur nulle) supprime le nom de fichier court, s’il existe pour le fichier spécifié par le paramètre hFile . Si un nom de fichier court n’existe pas, la fonction ne fait rien et retourne la réussite.

Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Ce comportement n’est pas pris en charge. Le paramètre doit contenir une chaîne valide d’un ou plusieurs caractères.

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. GetLastError peut retourner l’un des codes d’erreur suivants qui sont spécifiques à cette fonction.

Code de retour Description
ERROR_ALREADY_EXISTS
Le nom court spécifié n’est pas unique.
ERROR_INVALID_PARAMETER
Le fichier spécifié a été ouvert en mode respectant la casse ou le nom court spécifié n’est pas valide.

Remarques

L’appelant de cette fonction doit disposer du privilège SE_RESTORE_NAME . Pour plus d’informations, consultez Exécution avec des privilèges spéciaux.

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) No
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) Oui
Système de fichiers résilient (ReFS) No
 

SMB 3.0 ne prend pas en charge les noms courts sur les partages avec une fonctionnalité de disponibilité continue. Les noms courts ne sont pas recommandés sur csvFs.

Notes

L’en-tête winbase.h définit SetFileShortName 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 XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Fonctions de gestion des fichiers

GetShortPathName