循环创建文件夹
2018-07-20 来源:open-open
// 根据传入路径,创建出路径文件/夹
BOOL CheckPathExists(const CString &strPath, bool bFolder = true)
{
// If Folder is exists
int nIndex = strPath.ReverseFind(_T('\\'));
CString strTemp;
if(bFolder)
{
if(PathFileExists(strPath)) return TRUE;
}
else
{
strTemp = strPath.Left(nIndex);
if(PathFileExists(strTemp)) return TRUE;
}
// Create Folder
std::vector<CString> vecPath;
std::vector<CString>::iterator iter;
while(nIndex != -1)
{
strTemp = strPath.Left(nIndex);
if(strTemp.Right(1) != _T(':'))
vecPath.push_back(strTemp);
else break;
nIndex = strTemp.ReverseFind(_T('\\'));
}
if(vecPath.size() > 0)
{
for(iter = vecPath.end() - 1; iter != vecPath.begin(); -- iter)
{
strTemp = *iter;
CreateDirectory(strTemp, NULL);
}
// 顶级目录
CreateDirectory(vecPath[0], NULL);
if(bFolder) // 如果是文件夹
CreateDirectory(strPath, NULL);
}
return TRUE;
}
BOOL CheckPathExists(const CString &strPath, bool bFolder = true)
{
// If Folder is exists
int nIndex = strPath.ReverseFind(_T('\\'));
CString strTemp;
if(bFolder)
{
if(PathFileExists(strPath)) return TRUE;
}
else
{
strTemp = strPath.Left(nIndex);
if(PathFileExists(strTemp)) return TRUE;
}
// Create Folder
std::vector<CString> vecPath;
std::vector<CString>::iterator iter;
while(nIndex != -1)
{
strTemp = strPath.Left(nIndex);
if(strTemp.Right(1) != _T(':'))
vecPath.push_back(strTemp);
else break;
nIndex = strTemp.ReverseFind(_T('\\'));
}
if(vecPath.size() > 0)
{
for(iter = vecPath.end() - 1; iter != vecPath.begin(); -- iter)
{
strTemp = *iter;
CreateDirectory(strTemp, NULL);
}
// 顶级目录
CreateDirectory(vecPath[0], NULL);
if(bFolder) // 如果是文件夹
CreateDirectory(strPath, NULL);
}
return TRUE;
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
上一篇:操作mysql的C#类
下一篇:C#调用SQLite演示代码
最新资讯
热门推荐