UNICODE下创建多层目录

因为CreateDirectory每次只能创建一层目录,所以需要多重循环进行创建

int CX264DECODE::CreateDirect(CString PathName)
{
 BOOL bRet = FALSE;
 if (PathFileExists(PathName))
 {
  return TRUE;
 }
 else
 {
  int Pos = PathName.Find(_T("\\"));
  CString ParentPath=PathName.Left(Pos+1);
  CString SubPath = PathName.Mid(Pos+1);
  CString MidDir;
  while (Pos!=-1)
  {
   if (!PathFileExists(ParentPath))
   {
    bRet = CreateDirectory(ParentPath,NULL);
   }
   Pos = SubPath.Find(_T("\\"));
   MidDir = SubPath.Left(Pos+1);
   SubPath = SubPath.Mid(Pos+1);
   ParentPath.Format(ParentPath+_T("%s"),MidDir);
  }
  bRet = CreateDirectory(PathName,NULL);
 }
 return bRet;

}

 

 

还有比较简单一点的递归算法

 int Pos = PathName.ReverseFind('\\');
 CString ParentPath=PathName.Left(Pos);

 if (!PathFileExists(ParentPath))
 {
  CreateDirect(ParentPath);
 }
 CreateDirectory(PathName,NULL);
 return 1;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值