C++ 创建多级目录
2015-09-25 16:37
399 查看
bool Utility::CreateMultipleDirectory(const CString& szPath)
{
CString strDir(szPath);//存放要创建的目录字符串
//确保以'\'结尾以创建最后一个目录
if (strDir.GetAt(strDir.GetLength()-1)!=_T('\\'))
{
strDir.AppendChar(_T('\\'));
}
std::vector<CString> vPath;//存放每一层目录字符串
CString strTemp;//一个临时变量,存放目录字符串
bool bSuccess = false;//成功标志
//遍历要创建的字符串
for (int i=0;i<strDir.GetLength();++i)
{
if (strDir.GetAt(i) != _T('\\'))
{//如果当前字符不是'\\'
strTemp.AppendChar(strDir.GetAt(i));
}
else
{//如果当前字符是'\\'
vPath.push_back(strTemp);//将当前层的字符串添加到数组中
strTemp.AppendChar(_T('\\'));
}
}
//遍历存放目录的数组,创建每层目录
std::vector<CString>::const_iterator vIter;
for (vIter = vPath.begin(); vIter != vPath.end(); vIter++)
{
//如果CreateDirectory执行成功,返回true,否则返回false
bSuccess = CreateDirectory(*vIter, NULL) ? true : false;
}
return bSuccess;
}
{
CString strDir(szPath);//存放要创建的目录字符串
//确保以'\'结尾以创建最后一个目录
if (strDir.GetAt(strDir.GetLength()-1)!=_T('\\'))
{
strDir.AppendChar(_T('\\'));
}
std::vector<CString> vPath;//存放每一层目录字符串
CString strTemp;//一个临时变量,存放目录字符串
bool bSuccess = false;//成功标志
//遍历要创建的字符串
for (int i=0;i<strDir.GetLength();++i)
{
if (strDir.GetAt(i) != _T('\\'))
{//如果当前字符不是'\\'
strTemp.AppendChar(strDir.GetAt(i));
}
else
{//如果当前字符是'\\'
vPath.push_back(strTemp);//将当前层的字符串添加到数组中
strTemp.AppendChar(_T('\\'));
}
}
//遍历存放目录的数组,创建每层目录
std::vector<CString>::const_iterator vIter;
for (vIter = vPath.begin(); vIter != vPath.end(); vIter++)
{
//如果CreateDirectory执行成功,返回true,否则返回false
bSuccess = CreateDirectory(*vIter, NULL) ? true : false;
}
return bSuccess;
}
相关文章推荐
- C++ 定义实用比较函数(Custom Compare Function) 注意点
- 【C++】小心使用文件读写模式:回车('\r') 换行('\n')问题的一次纠结经历
- c语言学习笔记(7)单引号,双引号和逻辑符号的用法
- 黑马程序员——C语言基础---数据类型
- C语言中的简单函数
- 比较好的c++博文
- vim插件之AutoComplPop和OmniCppComplete的安装和使用
- c++中格式化输出。十六进制浮点数0x p输出问题
- C语言常见编译错误与执行错误
- 关于strcmp()的实现
- C语言的基本知识
- C语言的几个基本结构
- c++primer 第三章习题(4)
- C++Primer第五版 练习11.11(解答)
- C++Primer第五版 练习11.10(解答)
- C++之内部类与外部类(嵌套类)及友元
- C++Primer第五版 练习11.9(解答)
- 解决java和C语言之间DES加解密不一致的问题。
- C/C++ 运算符优先级
- C++Primer第五版 11.2.2节练习