Fonction PathCleanupSpec (shlobj_core.h)
[PathCleanupSpec est disponible pour une utilisation dans les systèmes d’exploitation spécifiés dans la section Configuration requise. Il peut être modifié ou indisponible dans les versions suivantes.]
Supprime les caractères non autorisés d’un nom de fichier ou de répertoire. Applique le format de nom de fichier 8.3 sur les lecteurs qui ne prennent pas en charge les noms de fichiers longs.
Syntaxe
int PathCleanupSpec(
[in, optional] PCWSTR pszDir,
[in, out] PWSTR pszSpec
);
Paramètres
[in, optional] pszDir
Type : PCWSTR
Pointeur vers une mémoire tampon terminée par null qui contient le chemin complet du répertoire qui contiendra le fichier ou le répertoire nommé dans pszSpec. Le chemin d’accès ne doit pas dépasser MAX_PATH caractères, y compris le caractère null de fin. Ce chemin n’est pas modifié.
Cette valeur peut être NULL.
[in, out] pszSpec
Type : PWSTR
Pointeur vers une mémoire tampon terminée par null qui contient le nom de fichier ou de répertoire à nettoyer. Dans le cas d’un fichier, incluez l’extension du fichier. Notez que, étant donné que « » est considéré comme un caractère non valide et sera supprimé, cette mémoire tampon ne peut pas contenir de chemin d’accès à plusieurs répertoires.
À la sortie, la mémoire tampon contient une chaîne terminée par null qui inclut le nom nettoyé.
Cette mémoire tampon doit comporter au moins MAX_PATH caractères pour éviter le risque d’un dépassement de mémoire tampon.
Valeur retournée
Type : int
Retourne une ou plusieurs des valeurs suivantes.
Code de retour | Description |
---|---|
|
Remplacez un ou plusieurs caractères non valides. |
|
Suppression d’un ou de plusieurs caractères non valides. |
|
Le chemin retourné est tronqué. |
|
La fonction a échoué, car le chemin d’entrée spécifié dans pszDir est trop long pour permettre la formation d’un nom de fichier valide à partir de pszSpec. Lorsque cet indicateur est retourné, il est toujours accompagné de l’indicateur PCS_FATAL. |
|
Le chemin nettoyé n’est pas un nom de fichier valide. Cet indicateur est toujours retourné conjointement avec PCS_PATHTOOLONG. |
Remarques
Les éléments suivants sont considérés comme des caractères non valides dans tous les noms.
\ / : * ? " < > |
Les caractères de contrôle sont également considérés comme non valides. Si les noms de fichiers longs ne sont pas pris en charge, les points-virgules (caractères ;) et virgule (,) ne sont pas non plus valides.
Le lecteur nommé dans pszDir est vérifié pour déterminer si son système de fichiers prend en charge les noms de fichiers longs. Si ce n’est pas le cas, le nom de pszSpec est tronqué au format 8.3 et la valeur PCS_TRUNCATED retournée. Si pszDir a la valeur NULL, le lecteur sur lequel Windows est installé est utilisé pour déterminer la prise en charge des noms de fichiers longs.
Si le chemin d’accès complet (le nombre de caractères dans le chemin d’accès à pszDir plus le nombre de caractères dans le nom nettoyé sur pszSpec) dépasse MAX_PATH – 1 (pour tenir compte du caractère null de fin), la fonction retourne PCS_PATHTOOLONG.
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 | shlobj_core.h (inclure Shlobj.h) |
Bibliothèque | Shell32.lib |
DLL | Shell32.dll (version 5.0 ou ultérieure) |