windows 删除文件夹所有文件夹及文件代码
2021-02-04 06:13
标签:win32 eof bsp als 代码 文件夹 cts 文件删除 file windows 删除文件夹所有文件夹及文件代码 标签:win32 eof bsp als 代码 文件夹 cts 文件删除 file 原文地址:https://www.cnblogs.com/george-cw/p/11479888.html 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 }