typedef std::basic_string<TCHAR> tstring;
bool CreateSubDirectory(LPCTSTR folder)
{
ATLASSERT(folder);
if(!folder) {
SetLastError(ERROR_INVALID_PARAMETER);
return false;
}
tstring strFoler(folder);
if(strFoler.empty() || strFoler.find(_T("\\")) == tstring::npos) {
return false;
}
size_t pos(0);
tstring temp;
if(strFoler[strFoler.size()-1] != _T('\\')) {
strFoler.append(_T("\\"));
}
bool ret(true);
while(!strFoler.empty() && ret)
{
pos = strFoler.find(_T("\\"));
temp += strFoler.substr(0, pos+1);
strFoler = strFoler.substr(pos+1 , strFoler.length()-pos+1 );
if(_taccess_s(temp.c_str(), 0) != 0) {
ret = !!CreateDirectory(temp.c_str(), NULL);
}
}
return ret;
}