如果要创建一个目录 /www/live/cctv,但是当前并没有/www,需要用以下方式进行循环创建。
bool createRecursionDir(std::string path)
{
if (path.length() == 0) return true;
std::string sub;
fixPath(path);
std::string::size_type pos = path.find('/');
while (pos != std::string::npos)
{
std::string cur = path.substr(0, pos-0);
if (cur.length() > 0 && !isDirectory(cur))
{
bool ret = false;
#ifdef WIN32
ret = CreateDirectoryA(cur.c_str(), NULL) ? true : false;
#else
ret = (mkdir(cur.c_str(), S_IRWXU|S_IRWXG|S_IRWXO) == 0);
#endif
if (!ret)
{
return false;
}
}
pos = path.find('/', pos+1);
}
return true;
}