BOOL DeleteDirectory(LPCTSTR lpszDir)
{
if (NULL == lpszDir || L'\0' == lpszDir[0])
{
return FALSE;
}
{
if (NULL == lpszDir || L'\0' == lpszDir[0])
{
return FALSE;
}
WIN32_FIND_DATA wfd = {0};
TCHAR szFile[MAX_PATH] = {0};
TCHAR szDelDir[MAX_PATH] = {0};
TCHAR szFile[MAX_PATH] = {0};
TCHAR szDelDir[MAX_PATH] = {0};
lstrcpy(szDelDir, lpszDir);
if (lpszDir[lstrlen(lpszDir) - 1] != L'\\')
{
_snwprintf(szDelDir, _countof(szDelDir) - 1, TEXT("%s\\"), lpszDir);
}
else
{
wcsncpy(szDelDir, lpszDir, _countof(szDelDir) - 1);
}
if (lpszDir[lstrlen(lpszDir) - 1] != L'\\')
{
_snwprintf(szDelDir, _countof(szDelDir) - 1, TEXT("%s\\"), lpszDir);
}
else
{
wcsncpy(szDelDir, lpszDir, _countof(szDelDir) - 1);
}
_snwprintf(szFile, _countof(szFile) - 1, TEXT("%s*.*"), szDelDir);
HANDLE hFindFile = FindFirstFile(szFile, &wfd);
if (INVALID_HANDLE_VALUE == hFindFile)
{
return FALSE;
}
HANDLE hFindFile = FindFirstFile(szFile, &wfd);
if (INVALID_HANDLE_VALUE == hFindFile)
{
return FALSE;
}
do
{
if (lstrcmpi(wfd.cFileName, TEXT(".")) == 0 || lstrcmpi(wfd.cFileName, TEXT("..")) == 0)
{
continue;
}
{
if (lstrcmpi(wfd.cFileName, TEXT(".")) == 0 || lstrcmpi(wfd.cFileName, TEXT("..")) == 0)
{
continue;
}
_snwprintf(szFile, _countof(szFile) - 1, TEXT("%s%s"), szDelDir, wfd.cFileName);
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
DeleteDirectory(szFile);
}
else
{
DeleteFile(szFile);
}
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
DeleteDirectory(szFile);
}
else
{
DeleteFile(szFile);
}
} while (FindNextFile(hFindFile, &wfd));
FindClose(hFindFile);
RemoveDirectory(szDelDir);
return TRUE;
}
RemoveDirectory(szDelDir);
return TRUE;
}