PathRenameExtension
新しい拡張子でファイル名の拡張子を取り替えます。
書式
BOOL PathRenameExtension(
LPTSTR pszPath,
LPCTSTR pszExt
);
【インクルードファイル】
shlwapi.h
【必要追加ライブラリ】
shlwapi.lib
戻り値
0以外 成功
0 変換失敗。新しいパスの文字列がMAX_PATHを超えた。
引数
pszPath
拡張子を取り替える最大長MAX_PATHのNULL文字で終了する文字列へのポインタ。
pszExt
「.」を含む変換後の拡張子
解説
新しい拡張子でファイル名の拡張子を取り替えます。
もしファイル名が拡張子を含まなければ、拡張子は、文字列の末尾に付加されます。
具体的には最後の「.」以降を第二引数に置き換えます。
第二引数文字列は先頭が「.」である必要があります。
使用例
〈サンプルプログラム〉
#include <stdio.h>
#include <shlwapi.h>
#pragma comment(lib, "shlwapi.lib")
int main()
{
char Path[MAX_PATH] = "c:\\doc\\hello.bak";
char *Ext = ".txt";
printf("引数に設定したパス : %s\n", Path);
printf("引数に設定した拡張子: %s\n", Ext);
PathRenameExtension(Path, Ext);
printf("変換後の文字列 : %s\n\n", Path);
char Path2[MAX_PATH] = "c:\\doc\\hello.bak.bak";
char *Ext2 = ".hoge";
printf("引数に設定したパス : %s\n", Path2);
printf("引数に設定した拡張子: %s\n", Ext2);
PathRenameExtension(Path2, Ext2);
printf("変換後の文字列 : %s\n\n", Path2);
char Path3[MAX_PATH] = "c:\\doc\\hello";
char *Ext3 = ".bak";
printf("引数に設定したパス : %s\n", Path3);
printf("引数に設定した拡張子: %s\n", Ext3);
PathRenameExtension(Path3, Ext3);
printf("変換後の文字列 : %s\n\n", Path3);
return 0;
}
〈出力〉
引数に設定したパス : c:\doc\hello.bak 引数に設定した拡張子: .txt 変換後の文字列 : c:\doc\hello.txt 引数に設定したパス : c:\doc\hello.bak.bak 引数に設定した拡張子: .hoge 変換後の文字列 : c:\doc\hello.bak.hoge 引数に設定したパス : c:\doc\hello 引数に設定した拡張子: .bak 変換後の文字列 : c:\doc\hello.bak
対応情報
DLL Version:shlwapi.dll version 4.71 以上。 Windows NT/2000:Windows NT 4.0/2000 Internet Explorer 4.0以降 Windows 95/98:Windows 95/98 Internet Explorer 4.0以降