PathAddExtensionW, fonction (shlwapi.h)

Ajoute une extension de nom de fichier à une chaîne de chemin d’accès.

Remarque Utilisation incorrecte de cette fonction peut entraîner un dépassement de mémoire tampon. Nous vous recommandons d’utiliser la fonction pathCchAddExtension plus sûre à sa place.
 

Syntaxe

BOOL PathAddExtensionW(
  [in, out]      LPWSTR  pszPath,
  [in, optional] LPCWSTR pszExt
);

Paramètres

[in, out] pszPath

Type : LPTSTR

Pointeur vers une mémoire tampon avec la chaîne terminée par null à laquelle l’extension de nom de fichier sera ajoutée. Vous devez définir la taille de cette mémoire tampon sur MAX_PATH pour vous assurer qu’elle est suffisamment grande pour contenir la chaîne retournée.

[in, optional] pszExt

Type : LPCTSTR

Pointeur vers une chaîne terminée par null qui contient l’extension de nom de fichier. Cette valeur peut être NULL.

Valeur de retour

Type : BOOL

Retourne TRUE si une extension a été ajoutée ou FALSE sinon.

Remarques

S’il existe déjà une extension de nom de fichier présente, aucune extension n’est ajoutée. Si le pszPath pointe vers une chaîne NULL , le résultat est l’extension de nom de fichier uniquement. Si pszExtension pointe vers une chaîne NULL , une extension «.exe» est ajoutée.

Exemples

#include <windows.h>
#include <iostream.h>
#include "Shlwapi.h"

void main( void )
{
     // String for path name without file name extension.
     char buffer_1[MAX_PATH] = "file";
     char *lpStr1;
     lpStr1 = buffer_1;

     // String for path name with file name extension.
     char buffer_2[ ] = "file.doc";
     char *lpStr2;
     lpStr2 = buffer_2;

     // String for extension name.
     char F_Ext[MAX_PATH] = ".txt";
     char *lpStr3;
     lpStr3 = F_Ext;

     // Null string as path. 
     char N_String[MAX_PATH] = "\0";
     char *lpStr4;
     lpStr4 = N_String;

     // Path 1 without the file name extension.
     cout << "The original path string 1 is  " << lpStr1 << endl;

     int ret_1 = PathAddExtension(lpStr1,lpStr3);
     cout << "The modified path string 1 is  " << lpStr1 << endl;

    // Path 2 with the file name extension already there.
    cout << "The original path string 2 is  " << lpStr2 << endl;
    int ret_2 = PathAddExtension(lpStr2,lpStr3);
    cout << "The modified path string 2 is  " << lpStr2<< endl;

    // Path 3 null string as a path.
    int ret_3 = PathAddExtension(lpStr4,lpStr3);
    cout << "The return value is " << ret_3<< endl;
    cout << "The modified path on a null string is " << lpStr4<< endl;

}

OUTPUT:
-----------------------
The original path string 1 is  file
The modified path string 1 is  file.txt
The original path string 2 is  file.doc
The modified path string 2 is  file.doc
The return value is 1
The modified path on a null string is .txt
The return value is 1

Note

L’en-tête shlwapi.h définit PathAddExtension comme 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel, Windows XP [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête shlwapi.h
bibliothèque Shlwapi.lib
DLL Shlwapi.dll (version 4.71 ou ultérieure)