您的位置:首页 > 其它

MFC 如何删除目录下的所有文件

2015-06-12 10:08 288 查看
 最经开发的时候要用到文件系统的一些函数,其中一个就是如何删除一个目录下的所有文件.

 下面试代码,BOOL bRemoveDir 代表是否移除根目录,也就是传进去的目录,如果传进去的目录是移动磁盘的根目录,那么移除会失败,要设置为FASLE.

 删除文件以及目录除了可以调用系统的快速格式化删除所有文件,

 我这种就是递归的找到每个文件,然后删除文件,移除目录。

BOOL DeleteDirectory(CString DirName,BOOL bRemoveRootDir)

{

CFileFind tempFind;
CString csZRootDir;

csZRootDir.Format("%s\\*.*",DirName.GetBuffer(0));

BOOL IsFinded=(BOOL)tempFind.FindFile(csZRootDir.GetBuffer(0));

while(IsFinded)

{
IsFinded=(BOOL)tempFind.FindNextFile();

if(!tempFind.IsDots())

{
CString csFileName;

csFileName.Format("%s",tempFind.GetFileName().GetBuffer(0));
if(tempFind.IsDirectory())

{
CString tmp;
tmp.Format("%s\\%s",DirName.GetBuffer(0),csFileName.GetBuffer(0));

DeleteDirectory(tmp,TRUE);

}

else

{
CString tmp;
tmp.Format("%s\\%s",DirName,csFileName.GetBuffer(0));

DeleteFile(tmp.GetBuffer(0));

}

}

}

tempFind.Close();
if (bRemoveRootDir)
{
if(!RemoveDirectory(DirName))

{
LogRecord(TRUE,_T("remove directory failed! %s \r\n"),DirName);

return FALSE;
}
}

return TRUE;

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