删除一个文件夹,应先删除其内的所有文件,由于文件夹内可能还有文件夹,所以需要进行嵌套操作。
void CCompDBDlg::DeleteFolder(CString DirName) //文件夹路径
{
CFileFind tempFind;
CString tempFileFind;
tempFileFind = DirName + "/*.*"; //查找所有文件
BOOL IsFinded = tempFind.FindFile(tempFileFind);
while(IsFinded) //若发现有文件
{
IsFinded = tempFind.FindNextFile();
if(!tempFind.IsDots()) //去掉"."和".."这两个目录
{
CString foundFileName;
foundFileName = DirName + "/" + tempFind.GetFileName();
if(tempFind.IsDirectory()) //如果是目录,即文件夹,则嵌套操作
{
DeleteFolder(foundFileName);
}
else //若是文件,直接删除文件
{
DeleteFile(foundFileName);
}
}
}
tempFind.Close();
if(!RemoveDirectory(DirName)) //移除文件夹
{
return ;
}
return ;
}