微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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 }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐