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
如果添加了扩展或 FALSE,则返回 TRUE。
言论
如果已有文件扩展名,则不会添加任何扩展名。 如果 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 Professional、Windows XP [仅限桌面应用] |
支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | 窗户 |
标头 | shlwapi.h |
库 | Shlwapi.lib |
DLL | Shlwapi.dll(版本 4.71 或更高版本) |