vc++[mfc]递归删除文件夹及其里边的文件

vc++[mfc]递归删除文件夹及其里边的文件

void DeleteDirectory(LPCTSTR path)
{
	CFileFind findfile;
	CString str;
	str=path;
	if(str.Right(1)!="\\")
		str.Format("%s\\*.*",path);
	else
		str.Format("%s*.*",path);
	BOOL find=findfile.FindFile(str);

	while(find)
	{
		find=findfile.FindNextFile();
		if(findfile.IsDirectory())
		{
			if(!findfile.IsDots())
			{

				DeleteDirectory(findfile.GetFilePath());
			}
		}
		else
		{
			DeleteFile(findfile.GetFilePath());
		}
	}
	findfile.Close();
	if(!RemoveDirectory(path))
	{
		DWORD ret=::GetLastError();
		CString strerr;
		strerr.Format("%d",ret);
		MessageBox(strerr,"错误代码",MB_OK);
	}
}

Leave a Reply