Q: How to delete, copy, or move a folder with all its contents?

A: One solution is to use FindFirstFile, FindNextFile, and FindClose to get each file, then DeleteFile, CopyFile, or MoveFile to delete, copy, or move one by one. Moreover, may be necessary to delete or create directories, make that in a recursive way, and so on. All after all can be a pain.

An easy method is to use SHFileOperation.
Here are few very simple examples:

Code:
void DeleteFolder(LPCTSTR pszFolder)
{
   SHFILEOPSTRUCT fos = {0};

   fos.wFunc = FO_DELETE;
   fos.pFrom = pszFolder; 

   ::SHFileOperation(&fos); 
}
   // ...
   DeleteFolder(_T("c:\\temp\\test"));
Code:
void CopyFolder(LPCTSTR pszFrom, LPCTSTR pszTo)
{
   SHFILEOPSTRUCT fos = {0};

   fos.wFunc = FO_COPY;
   fos.pFrom = pszFrom; 
   fos.pTo   = pszTo;

   ::SHFileOperation(&fos); 
}
   // ...
   CopyFolder(_T("c:\\temp"), _T("c:\\temp2"));
Code:
void MoveFolder(LPCTSTR pszFrom, LPCTSTR pszTo)
{
   SHFILEOPSTRUCT fos = {0};

   fos.wFunc = FO_MOVE;
   fos.pFrom = pszFrom; 
   fos.pTo   = pszTo;

   ::SHFileOperation(&fos); 
}
   // ...
   MoveFolder(_T("c:\\temp"), _T("k:\\temp2"));