13,825
社区成员
发帖
与我相关
我的任务
分享
bool DeleteDirectroyEx(String P)
{
if(P.IsEmpty() || P.Length() < 4)
{
return false;
}
int len = P.Length();
char *Path = P.c_str();
AnsiString Dir = Path;
if(Path[len-1] != '\\')
{
Dir = Dir+'\\';
}
AnsiString Files = Dir + "*.*";
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(Files.c_str(), &wfd);
bool Ret = true;
AnsiString Tmp;
if(hFind != INVALID_HANDLE_VALUE)
{
bool bFind=true;
while(bFind)
{
if(wfd.cFileName[0] != '.')
{
Tmp = Dir + wfd.cFileName;
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
Ret = Ret && DeleteDirectroyEx(Tmp.c_str());
}
else
{
SetFileAttributes(Tmp.c_str(), FILE_ATTRIBUTE_NORMAL);
Ret = Ret && DeleteFile(Tmp.c_str());
}
}
bFind = FindNextFile(hFind, &wfd);
}
FindClose(hFind);
}
if(Ret)
{
return RemoveDirectory(Path);
}
return false;
}