// 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; }