// DirectoryCompleteDelete.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"
#include <windows.h>

#define ISDOTS(psz) ((psz)[0] == '.' && ((psz)[1] == '\0' || (psz)[1] == '.' && (psz)[2] == '\0'))

BOOL DeleteDirectory(LPCTSTR pszDir)
{
	TCHAR szDirOld[MAX_PATH];
	HANDLE hFind;
	WIN32_FIND_DATA find;
	
	GetCurrentDirectory(MAX_PATH, szDirOld);
	if (!SetCurrentDirectory(pszDir))
		return FALSE;
	
	hFind = FindFirstFile(TEXT("*"), &find);
	if (hFind != INVALID_HANDLE_VALUE)
	{
		do
		{
			if (!ISDOTS(find.cFileName))
			{
				if (find.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
				{
					DeleteDirectory(find.cFileName);
				}
				else
				{
					SetFileAttributes(find.cFileName, FILE_ATTRIBUTE_NORMAL);
					DeleteFile(find.cFileName);
				}
			}
		} while(FindNextFile(hFind, &find));
		FindClose(hFind);
	}
	SetCurrentDirectory(szDirOld);
	
	SetFileAttributes(pszDir, FILE_ATTRIBUTE_DIRECTORY);
	return RemoveDirectory(pszDir);
}

int _tmain(int argc, _TCHAR* argv[])
{
	DeleteDirectory(TEXT("C:\\MyFolder\\Homepage\\public_html\\Cprpr\\CompleteDeleteDirectory"));
	
	return 0;
}