CreateDirectory()エラー時の詳細チェック方法(既にフォルダが存在する、など)

[vc][mfc]

GetLastError()とInternetGetLastResponseInfo()を使う

FTPサーバからのレスポンスがInternetGetLastResponseInfoで受け取る文字列に入るみたい

if( !m_ftpConP->CreateDirectory(dirName) ){
	
	long error_code = GetLastError();
	if( error_code == ERROR_INTERNET_EXTENDED_ERROR ){

		DWORD dwError;
		TCHAR Buffer[256];
		DWORD dwBufferLength;
		InternetGetLastResponseInfo(&dwError,Buffer,&dwBufferLength);

		// 550 <file>: File exists
		if( _tcsstr(Buffer,_T("550")) != NULL ){
			// 既に存在している場合はエラーにしない
		}else{
			return FALSE;
		}
	}else{
		return FALSE;
	}

}

ネタ元