PathAddExtensionA 函数 (shlwapi.h)

将文件扩展名添加到路径字符串。

注意 滥用此函数可能会导致缓冲区溢出。 建议使用更安全的 PathCchAddExtension 函数。
 

语法

BOOL PathAddExtensionA(
  [in, out]      LPSTR  pszPath,
  [in, optional] LPCSTR pszExt
);

参数

[in, out] pszPath

类型: LPTSTR

指向缓冲区的指针,其中包含文件扩展名将追加到的以 null 结尾的字符串。 必须将此缓冲区的大小设置为MAX_PATH,以确保其大小足以容纳返回的字符串。

[in, optional] pszExt

类型: LPCTSTR

指向包含文件扩展名的以 null 结尾的字符串的指针。 此值可以为 NULL

返回值

类型: BOOL

如果添加了扩展,则返回 TRUE ;否则返回 FALSE

注解

如果已存在文件扩展名,则不会添加任何扩展名。 如果 pszPath 指向 NULL 字符串,则结果将仅为文件扩展名。 如果 pszExtension 指向 NULL 字符串,则将添加“.exe”扩展。

示例

#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

注意

shlwapi.h 标头将 PathAddExtension 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

   
最低受支持的客户端 Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 shlwapi.h
Library Shlwapi.lib
DLL Shlwapi.dll (版本 4.71 或更高版本)