-
-
[原创]自写文件清理工具附带源码
-
发表于:
2015-10-14 10:50
7662
-
学了俩周windows编程 做出来个这个小程序,大牛路过,莫见笑。
删除文件夹 就没必要做了 直接右键删除即可
可扩展:
常用软件垃圾、视频音频垃圾、上网垃圾、系统垃圾、注册表垃圾、网络游戏垃圾、恶意插件请等待后续开发...
Java、C#、PHP、Python、VB等编程语言请提供无用文件后缀、或者自己动手丰衣足食。
界面:
部分源码及实现功能介绍:
主要功能(引擎O(∩_∩)O~)
void C项目清理工具Dlg::TraverseFolder(LPCTSTR szName,LPCTSTR filetype)//读取文件 遍历当前文件目录
{
WIN32_FIND_DATAW findFileData={0};
TCHAR szFind[MAX_PATH] = {_T("\0")};
CString pipei=filetype;//pipei 匹配O(∩_∩)O~
BOOL bRet;
CString fileRootPath = szName;
CString filePath = fileRootPath+_T("\\*.*");
HANDLE hwnd=FindFirstFile(filePath,&findFileData);
if (hwnd==INVALID_HANDLE_VALUE)//没找到文件
{
MessageBox(_T("该文件路径不存在"),_T("错误"),NULL);
flag=1;
return;
}
while (true)
{
if (_tcscmp(findFileData.cFileName,_T("."))==0||
_tcscmp(findFileData.cFileName,_T(".."))==0 )
{
bRet=FindNextFile(hwnd,&findFileData);
if (!bRet)
{
break;
}
continue;
}
CString path = fileRootPath+ _T("\\")+ findFileData.cFileName;
int index = path.ReverseFind(_T('.'));
CString pix = path.Right(path.GetLength()-index);
if (pipei.Find(pix)!=-1)
{
DeleteFile(path);
}
if (findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
_tcscpy_s(szFind,MAX_PATH,szName);
_tcscat_s(szFind,_T("\\"));
_tcscat_s(szFind,findFileData.cFileName);
TraverseFolder(szFind,pipei);
}
bRet=FindNextFile(hwnd,&findFileData);
if (!bRet)
{
errorNum++;
break;
}
}
}
TCHAR szDir[MAX_PATH];
BROWSEINFO bi;
ITEMIDLIST *pidl;
bi.hwndOwner = this->m_hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = szDir;//这个是输出缓冲区
bi.lpszTitle = _T("选择输出文件夹:"); //标题
bi.ulFlags = BIF_NEWDIALOGSTYLE;//使用新的界面,在win7中效果较好//BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
pidl = SHBrowseForFolder(&bi);//弹出对话框
if (pidl == NULL)//点了取消,或者选择了无效的文件夹则返回NULL
return;
if(SHGetPathFromIDList(pidl, szDir))
m_str = szDir;//szDir就是要获取的文件夹
UpdateData(FALSE);
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!