PathCleanupSpec, fonction (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
);

Parameters

[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é à pszSpec. Le chemin d’accès ne doit pas dépasser MAX_PATH caractères de longueur, y compris le caractère null de fin. Ce chemin d’accès 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 du fichier ou du 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 un chemin d’accès à plusieurs répertoires profonds.

À la sortie, la mémoire tampon contient une chaîne terminée par null qui inclut le nom nettoyé.

Cette mémoire tampon doit être au moins MAX_PATH caractères de longueur pour éviter la possibilité d’un dépassement de mémoire tampon.

Valeur renvoyée

Type : int

Retourne une ou plusieurs des valeurs suivantes.

Code de retour Description
PCS_REPLACEDCHAR
Remplacement d’un ou de plusieurs caractères non valides.
PCS_REMOVEDCHAR
Suppression d’un ou de plusieurs caractères non valides.
PCS_TRUNCATED
Le chemin retourné est tronqué.
PCS_PATHTOOLONG
La fonction a échoué, car le chemin d’accès d’entrée spécifié à 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.
PCS_FATAL
Le chemin d’accès nettoyé n’est pas un nom de fichier valide. Cet indicateur est toujours retourné conjointement avec PCS_PATHTOOLONG.

Remarks

Les caractères suivants sont considérés comme 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 caractères semi-deux-points (;) et virgule(,) ne sont pas 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 au niveau 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 du nom de fichier long.

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 du nom nettoyé au niveau pszSpec) dépasse MAX_PATH – 1 (pour tenir compte du caractère null de fin), la fonction retourne PCS_PATHTOOLONG.

Exigences

Requirement Value
Client minimum requis 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 (include Shlobj.h)
Library Shell32.lib
DLL Shell32.dll (version 5.0 ou ultérieure)