void DelPath(CString strPath)
{
// WIN32_FIND_DATA Sr;
// HANDLE handle = NULL;
// int nAttr = GetFileAttributes(strPath); // 如果是目录
// if(nAttr == FILE_ATTRIBUTE_DIRECTORY)
// {
// if (strPath.Right(1) != "\\")
// {
// strPath += "\\";
// }
//
// try
// {
// handle = ::FindFirstFile(strPath + L"*.* ", &Sr);
// }
// catch(...)
// {
// return;
// }
// if (handle) {
// do
// {
// if (handle/* && Sr.cFileName[0] != '.'*/)
// {
// if(Sr.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
// {
// DelPath(strPath + Sr.cFileName);
// }
// else
// {
// ::SetFileAttributes(strPath + Sr.cFileName, 0);
// ::DeleteFile(strPath + Sr.cFileName);
// }
// }
// } while (::FindNextFile(handle, &Sr));
// ::FindClose(handle);
// }
//
// ::RemoveDirectory(strPath);
// }
// else
// {
// ::SetFileAttributes(strPath, 0);
// ::DeleteFile(strPath);
// }
CFileFind ff;
int nAttr = GetFileAttributes(strPath); // 如果是目录
if(nAttr == FILE_ATTRIBUTE_DIRECTORY)
{
if (strPath.Right(1) != "\\")
{
strPath += "\\";
}
strPath += "*.*";
BOOL bRes = ff.FindFile(strPath);
while (bRes) {
bRes = ff.FindNextFile();
if (bRes)
{
if (ff.IsDots())
{
continue;
}
else if (ff.IsDirectory())
{
strPath = ff.GetFilePath();
DelPath(strPath); // 递归删除子目录
RemoveDirectory(strPath); // 目录为空后删除
}
else if (!ff.IsDots() && !ff.IsDirectory())
{
strPath = ff.GetFilePath();
::SetFileAttributes(strPath, 0);
::DeleteFile(strPath);
}
}
}
}
else
{
::SetFileAttributes(strPath, 0);
::DeleteFile(strPath);
}
}