2.1.10.3 check_add_file_ext


Description

Add or replace extension name of a file.

Syntax

int check_add_file_ext( LPSTR lpszFilename, LPCSTR lpcszExt, LPSTR lpszExt2 = NULL )

Parameters

lpszFilename
[input] filename with or without path, typically from a buffer with MAXFULLPATH in size
lpcszExt
[input] file extension, without the dot.
lpszExt2
[output] optional buffer, see Remark

Return

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;

Examples

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);
}

Remark

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

See Also

add_file_extension

Header to Include

origin.h

Reference