判断目录是否存在,不存在则创建

16 篇文章 0 订阅

1、创建单级目录:

//此函数只能创建下一级目录,多级目录无法创建
//检测路径若不存在则创建
BOOL CDetectSystemApp::CheckCreatePath(CString strPathName)
{
	if(strPathName.Right(1)!="\\")
		strPathName+="\\";
	LPTSTR lpbuffer = new TCHAR[MAX_PATH];
	::GetCurrentDirectory(MAX_PATH,lpbuffer);
	if(!::SetCurrentDirectory(LPCTSTR(strPathName)))
	{
		if(!::CreateDirectory(LPCTSTR(strPathName),NULL))
		{
			::SetCurrentDirectory(lpbuffer);
			delete lpbuffer;
			return FALSE;
		}
	}	
	::SetCurrentDirectory(lpbuffer);
	delete lpbuffer;
	return TRUE;
}


2、创建多级目录:

//目录是否存在,也可判断一个路径是否为文件夹
BOOL CttDlg::FolderExists(CString strFolder)
{
	DWORD attr;   
	attr = GetFileAttributes(strFolder);  
	return (attr != (DWORD)(-1)) && (attr & FILE_ATTRIBUTE_DIRECTORY);   
}

//创建目录,可以多层创建;创建成功或者已存在,返回true; 否则返回false
BOOL CttDlg::CreateMtlDir(CString strPath)
{
	int nLen = strPath.GetLength();
	if (nLen < 2)
	{
		return FALSE;  //如果字符串长度小于,则不是有效的路径格式。
	}

	if(_T('\\') == strPath[nLen-1])//删除末尾的"\\"
	{
		strPath = strPath.Left(nLen-1);
		nLen = strPath.GetLength();
	}

	if (nLen <= 0)
	{
		return FALSE;
	}

	if (nLen <= 3) //如果长度<=3,那么必定是根目录格式
	{
		if (FolderExists(strPath))
		{
			return TRUE;//如果根目录存在,返回true;
		}
		else 
		{
			return FALSE;//如果不存在,根目录是无法创建的,返回失败;
		}
	}

	if (FolderExists(strPath))
	{
		return TRUE;//如果目录存在,返回true;
	}

	// 分开父目录和本身目录名称
	CString Parent;
	Parent = strPath.Left(strPath.ReverseFind(_T('\\')));

	if(Parent.GetLength() <= 0)
	{
		return FALSE; //目录名称错误
	}

	BOOL Ret = CreateMtlDir(Parent);  //递归创建父目录

	if(Ret)      // 父目录存在,直接创建目录
	{
		SECURITY_ATTRIBUTES sa;
		sa.nLength = sizeof(SECURITY_ATTRIBUTES);
		sa.lpSecurityDescriptor = NULL;
		sa.bInheritHandle = 0;
		Ret = (CreateDirectory(strPath,&sa) == TRUE);
		return Ret;
	}
	else
	{
		return FALSE;
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Python中,可以使用`os`模块来检查目录是否存在创建目录。可以在`for`循环内使用以下代码: ```python import os for directory_name in directory_names: if not os.path.exists(directory_name): os.makedirs(directory_name) ``` 在上面的代码中,`directory_names`是一个包含目录名称的列表。循环遍历这个列表中的每个目录名称,然后使用`os.path.exists`函数检查该目录是否已经存在。如果目录不存在,则使用`os.makedirs`函数创建目录及其所有父级目录。 请注意,如果您计划创建多个目录,最好使用`os.makedirs`而不是`os.mkdir`。因为`os.makedirs`会自动创建整个目录树,而`os.mkdir`则只会创建一个目录,如果父级目录不存在,会导致出错。 ### 回答2: 可以使用Python的os模块来判断目录是否存在创建目录。具体实现如下: ```python import os path = "目录的路径" # 替换为你想要判断目录路径 if not os.path.exists(path): # 判断目录是否存在 os.makedirs(path) # 创建目录 print("目录创建") else: print("目录已存在") ``` 首先,导入os模块。然后,设置变量path为待判断目录路径。 在判断目录是否存在的条件语句中,使用`os.path.exists()`函数来判断目录是否存在。如果目录不存在,则调用`os.makedirs()`函数来创建目录,并输出"目录创建"。如果目录已存在,则直接输出"目录已存在"。 以上代码中,替换`"目录的路径"`为你要判断目录的实际路径,执行该代码即可判断目录是否存在并进行创建。 ### 回答3: 在进行循环判断目录是否存在创建目录的操作时,可以使用以下代码: ```python import os def create_directory(directory): if not os.path.exists(directory): # 判断目录是否存在 os.makedirs(directory) # 创建目录 for i in range(10): directory = "目录名{}".format(i) # 设置目录名 create_directory(directory) # 调用函数判断目录是否存在创建目录 ``` 这段代码首先导入了`os`模块,然后定义了一个函数`create_directory(directory)`。在函数体内,通过`os.path.exists(directory)`判断目录是否存在,如果不存在则使用`os.makedirs(directory)`创建目录。 接下来,在一个循环中,我们可以通过设置不同的目录名(例如"目录名0"、"目录名1"等等)来创建多个目录。循环会进行10次,每次都会调用`create_directory(directory)`函数来判断目录是否存在创建目录。 需要注意的是,如果你需要在目录名中使用其他的变量或者不同的命名方式,可以根据具体的需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值