Add or replace extension name of a file.
int check_add_file_ext( LPSTR lpszFilename, LPCSTR lpcszExt, LPSTR lpszExt2 = NULL )
It depends on the various combinations of the arguments, enumerated as CHECKADDFILEEXTERROR as below. lpszFilename is modified only when CHECKADDFILEEXT_UPDATE_SUCCESSFULLY returned.
typedef enum { //length of lpszFilename plus extension is longer than MAX_FILENAME. CHECKADDFILEEXT_EXCEED_MAXFILENAME = -100, CHECKADDFILEEXT_UPDATE_SUCCESSFULLY = 0, //lpszFilename updated successfully. CHECKADDFILEEXT_UPDATE_NO_NEED,//no need to update lpszFilename //If lpcszExt is NULL, means testing, then CHECKADDFILEEXT_HAS_EXTENSION //or CHECKADDFILEEXT_HAS_NOT_EXTENSION would be returned. CHECKADDFILEEXT_HAS_EXTENSION, CHECKADDFILEEXT_HAS_NOT_EXTENSION, } CHECKADDFILEEXTERROR;
EX1
void check_add_file_ext_ex1() { char szTemp[20]; char strFileName[100]; string str = GetAppPath(1) + "origin.ini"; lstrcat(strFileName, str); int nRet = check_add_file_ext(strFileName,NULL,szTemp); out_str(szTemp); }
Add extension to file name if not present, or to get file extension string
This function assumes that lpszFilename has extra space to append file extension
if lpcszExt ==NULL, then return CHECKADDFILEEXT_HAS_EXTENSION if has extension and copied to into lpszExt2 if not NULL
if lpcszExt !=NULL, then
if lpszExt2 == NULL, then replace/append ext regardless if existed or not, return CHECKADDFILEEXT_UPDATE_NO_NEED if no change
if lpszExt2 != NULL, then it is assumed to be 2nd ext, replace/append if not either, return CHECKADDFILEEXT_UPDATE_NO_NEED if no change
origin.h