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 函數僅僅是對文件名字符串的替換, 和磁盤上的文件沒有關係.