Partager via


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
PCS_REPLACEDCHAR
Remplacez un ou 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’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.
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)