#include "StdAfx.h" #include "CreateFilePath.h" #include #include "ModuleInfo.h" namespace { TCHAR replace_invalid_symbol(TCHAR chr) { TCHAR InvaliSymbols[] = {_T('\\'),_T('/'),_T(':'),_T('*'),_T('?'),_T('"'),_T('<'),_T('>'),_T('|')}; for(int i = 0; i < sizeof(InvaliSymbols)/sizeof(InvaliSymbols[0]);++i) { if(chr == InvaliSymbols[i]) { return _T('_'); } } return chr; } void prepare_name(tstring& rsName) { std::transform(rsName.begin(),rsName.end(),rsName.begin(),boost::bind(replace_invalid_symbol,_1)); } } tstring CreateFilePath(const tstring& rsName) { TCHAR szPath[_MAX_PATH]; ::GetModuleFileName(g_hInstance,szPath,_MAX_PATH); TCHAR* p = _tcsrchr(szPath,_T('\\')); if(p) { *p = 0; } tstring s(rsName); prepare_name(s); tostringstream o; o << szPath << _T("\\Quotes\\") << s; return o.str(); }