http://hi.baidu.com/jxq61/blog/index/11
实际应用中我们经常需要 把一个文件名 换成 另一种扩展名.
#include "stdafx.h"
#include "stdlib.h"
typedef char TFILENAME [_MAX_PATH];
int exchageFileExt(
TFILENAME fileName , //文件名
char * newExt, //要替换的文件扩展名
TFILENAME newfilename //替换后的新文件名
)
{
char path [_MAX_PATH];
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
errno_t err;
err = _splitpath_s( fileName, drive,
_MAX_DRIVE, dir, _MAX_DIR, fname,
_MAX_FNAME, ext, _MAX_EXT );
if (! err)
{
err = _makepath_s(
newfilename,
_MAX_PATH,
drive, dir, fname, newExt );
}
return err;
}
int _tmain(int argc, _TCHAR* argv[])
{
TFILENAME fname1 ;
TFILENAME fname2 ;
strcpy( fname1,"c://123//456.789.bin");
exchageFileExt( fname1, ".txt",fname2 );
printf("源文件名 = /n %s/n",fname1);
printf("替换后文件名= /n %s/n",fname2);
getchar();
return 0;
}
---- 运行结果 --------
源文件名 =
c:/123/456.789.bin
替换后文件名=
c:/123/456.789.txt
说明:
exchageFileExt 函数仅仅是对文件名字符串的替换, 和磁盘上的文件没有关系.