您的位置:首页 > 其它

递归调用删除文件夹及文件夹下所有内容

2006-06-21 11:23 387 查看
void RemoveTree(CString strParent) //递归函数
{
CString strTmp;
CFileFind f;
BOOL bFind = f.FindFile(strParent + "*.*");
while(bFind)
{
bFind = f.FindNextFile();
if(f.IsDots()) continue; //文件名为"."或".."的文件夹
if(f.IsDirectory()) //文件夹
{
strTmp = strParent + f.GetFileName() + "//";
RemoveTree(strTmp);
if(!RemoveDirectory(strTmp))
{
printf("remove directory %s fial./n",strTmp.GetBuffer(0));
}
}
else //文件
{
strTmp = strParent + f.GetFileName();
if(!DeleteFile(strTmp))
{
printf("delete file %s fial./n",strTmp.GetBuffer(0));
}
}
}
}

void RemoveDirAndContent(CString strDir)
{
RemoveTree(strDir);
if (!RemoveDirectory(strDir))
{
printf("remove directory %s fial./n",strDir.GetBuffer(0));
}
}

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
CString strCurtDir;
GetCurrentDirectory(_MAX_PATH,strCurtDir.GetBuffer(_MAX_PATH));
strCurtDir.ReleaseBuffer();

RemoveDirAndContent(strCurtDir + "//test//");

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: