Функция PathAddExtensionW (shlwapi.h)
Добавляет расширение имени файла в строку пути.
Синтаксис
BOOL PathAddExtensionW(
[in, out] LPWSTR pszPath,
[in, optional] LPCWSTR pszExt
);
Параметры
[in, out] pszPath
Тип: LPTSTR
Указатель на буфер со строкой, заканчивающейся нулевым значением, к которой будет добавлено расширение имени файла. Необходимо задать размер этого буфера MAX_PATH, чтобы он был достаточно велик для хранения возвращаемой строки.
[in, optional] pszExt
Тип: LPCTSTR
Указатель на строку, завершающуюся нулевым значением, которая содержит расширение имени файла. Это значение может иметь значение 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 в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows 2000 Professional, Windows XP [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | shlwapi.h |
Библиотека | Shlwapi.lib |
DLL | Shlwapi.dll (версия 4.71 или более поздняя) |