bool DeleteDirectory(CString& DirName)
{
// 匹配格式为*.*,即该目录下的所有文件
CString szDeletePath;
szDeletePath.Format(_T("%s//*.*"), DirName);
WIN32_FIND_DATA FindFileData;
ZeroMemory(&FindFileData, sizeof(WIN32_FIND_DATA));
HANDLE hFile = FindFirstFile(szDeletePath, &FindFileData);
do
{
// 排除'.'目录和'..'目录
if (0 == _tcscmp(FindFileData.cFileName, _T(".")) || 0 == _tcscmp(FindFileData.cFileName, _T("..")))
{
continue;
}
CString strFileName;
strFileName.Format(_T("%s//%s"), DirName, FindFileData.cFileName);
if( IsDirectory(strFileName)) //如果是目录,则递归地调用
{
DeleteDirectory(strFileName);
}
else
{
DeleteFile(strFileName);
}
}
while(FindNextFile(hFile, &FindFileData));
FindClose(hFile);
RemoveDirectory(DirName);
return true;
}
递归删除文件夹目录下所有文件
最新推荐文章于 2023-12-10 21:58:20 发布
本文介绍了一个C++函数boolDeleteDirectory,用于递归删除指定目录及其包含的所有子目录和文件。通过查找并处理目录中的每个文件和子目录实现,避免删除当前目录和父目录。
332

被折叠的 条评论
为什么被折叠?



