MFC 删除一个文件夹下的所有文件代码

/* CString to char */
char* CStringToChar(CString szStr)
{
	int len = WideCharToMultiByte(CP_ACP,0,szStr,-1,NULL,0,NULL,NULL);
	if (len == 0)
	{
		return NULL;
	}

	char* buffer = new char[len+1];

	WideCharToMultiByte(CP_ACP,0,szStr,-1,buffer,len,NULL,NULL);

	return buffer;
}

bool DeleteDirectory(string strDirName)
{
	TypeConversion type;
	CFileFind tempFind;
	char strTempFileFind[MAX_PATH];

	sprintf(strTempFileFind,"%s\\*.*", strDirName.c_str());

	BOOL IsFinded = tempFind.FindFile(CString(strTempFileFind));
	while (IsFinded)
	{
		IsFinded = tempFind.FindNextFile();

		if (!tempFind.IsDots()) 
		{
			char* strFoundFileName = CStringToChar(tempFind.GetFileName().GetBuffer(MAX_PATH));

			if (tempFind.IsDirectory())
			{
				char strTempDir[MAX_PATH];
				sprintf(strTempDir,"%s\\%s", strDirName, strFoundFileName);
				DeleteDirectory(strTempDir);
			}
			else
			{
				char strTempFileName[MAX_PATH];
				sprintf(strTempFileName,"%s\\%s", strDirName.c_str(), strFoundFileName);
				DeleteFile(CString(strTempFileName));
			}
		}
	}
	tempFind.Close();

	if(!RemoveDirectory(CString(strDirName.c_str())))
	{
		return FALSE;
	}
	return TRUE;
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值