windows 删除文件夹所有文件夹及文件代码

 1 bool DeleteFolderAll(LPCTSTR pSrcPath )
 2 {
 3     if(pSrcPath == NULL)
 4         return false;
 5 
 6     wchar_t pwcPath[MAX_PATH];
 7     wcscpy(pwcPath , pSrcPath);
 8     int ilen = wcslen(pwcPath);
 9     
10     if (pwcPath[ilen-1] == L'\')
11     {
12         pwcPath[ilen-1] = 0;
13     }
14     
15 
16     wchar_t wcPath[MAX_PATH] = {0};
17     wcscpy(wcPath,pwcPath);
18     wcscat(wcPath,_T("\*.*"));
19     WIN32_FIND_DATA FindFileData;
20     ZeroMemory(&FindFileData,sizeof(WIN32_FIND_DATA));
21     
22     HANDLE hFindFile = FindFirstFile(wcPath,&FindFileData);
23     
24     if(hFindFile == INVALID_HANDLE_VALUE)
25         return false;
26     
27     BOOL bContinue = true;
28     
29     while (bContinue != false)
30     {
31         //bIsDots为真表示是.或..
32         bool bIsDots = (wcscmp(FindFileData.cFileName,_T(".")) == 0 || wcscmp(FindFileData.cFileName,_T("..")) == 0);
33         if ((FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0 && bIsDots == false)
34         {
35             //是目录,就再进入该目录
36             wcscpy(wcPath,pwcPath);
37             wcscat(wcPath,_T("\"));
38             wcscat(wcPath,FindFileData.cFileName);
39             DeleteFolderAll(wcPath);
40             //寻找下一文件
41             bContinue = FindNextFile(hFindFile,&FindFileData);
42             continue;
43         }
44         
45         if (bIsDots == false)
46         {
47             //是文件删除之
48             wcscpy(wcPath,pwcPath);
49             wcscat(wcPath,_T("\"));
50             wcscat(wcPath,FindFileData.cFileName);
51             DeleteFile(wcPath);
52         }
53         //寻找下一文件
54         bContinue = FindNextFile(hFindFile,&FindFileData);
55         
56     }
57     
58     FindClose(hFindFile);
59     
60     //删除空目录
61     RemoveDirectory(pwcPath);
62     return true;
63 }
原文地址:https://www.cnblogs.com/george-cw/p/11479888.html