创建多级文件夹目录

需求:需创建一个路径,该路径包含多级文件夹
分析:CreateDirectory一次只能创建一个文件夹,可使用FindFirstFile等函数来帮助实现

方法:

int CreateDir(CString strFolderPath)
{
	HANDLE				hFile;
	WIN32_FIND_DATA		fileinfo;
	CStringArray		m_arr;	// To hold Directory Structures
	BOOL				bRet = FALSE;
	int					nIndex = 0;
	CString				strTemp;


	hFile = FindFirstFile(strFolderPath, &fileinfo);

	// if the file exists and it is a directory
	if(fileinfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
	{
		FindClose(hFile);
		return 2;
	}
	FindClose(hFile);

	// Parse the supplied CString Directory String
	m_arr.RemoveAll();
	int nLength = strFolderPath.GetLength();

	for(nIndex = 0; nIndex < nLength; nIndex++)
	{
		// If the character is not a '\', add it to csTemp
		if(strFolderPath.GetAt(nIndex) != '\\')
		{
			strTemp += strFolderPath.GetAt(nIndex);
		}
		else
		{
			m_arr.Add(strTemp);
			strTemp += '\\';
		}
		// If we reached the end of the file add the remaining string
		if(nIndex == (nLength - 1))
		{
			m_arr.Add(strTemp);
		}
	}

	for(nIndex = 1; nIndex < m_arr.GetSize(); nIndex++)
	{
		strTemp = m_arr.GetAt(nIndex);

		bRet = CreateDirectory(strTemp, NULL);

		if(TRUE == bRet)
		{
			SetFileAttributes(strTemp, FILE_ATTRIBUTE_NORMAL);
		}
	}
	m_arr.RemoveAll();

	hFile = FindFirstFile(strFolderPath, &fileinfo);

	if(fileinfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
	{
		FindClose(hFile);
		return 1;
	}
	else
	{
		FindClose(hFile);
		return 0;
	}
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值