欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]自写文件清理工具附带源码

[原创]自写文件清理工具附带源码

学了俩周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);

拖拽功能:
void C项目清理工具Dlg::OnDropFiles(HDROP hDropInfo)

{

  // TODO: 在此添加消息处理程序代码和/或调用默认值

  UINT movecount=DragQueryFile(hDropInfo,-1,NULL,0);

  for (UINT i=0;i<movecount;i++)

  {

    TCHAR movefile[MAX_PATH]={0};

    DragQueryFile(hDropInfo,i,movefile,MAX_PATH);

    m_str=movefile;

    UpdateData(FALSE);

  }

  DragFinish(hDropInfo);

  CDialogEx::OnDropFiles(hDropInfo);

}

引导删除功能:
  // TODO: 在此添加控件通知处理程序代码

  if (m_str==L""||m_filetype==L"")

  {

    MessageBox(_T("请输入文件路径或文件类型"),_T("提示"),NULL);

    return;

  }

  fileName=m_str;

  filetype=m_filetype;

  errorNum = 0;

  TraverseFolder(fileName,filetype);

  if (flag!=1)

  {

    MessageBox(_T("已删除"),_T("提示"),NULL);

  }

好没了, 其它自行查看源码
-------------------------------------------------分隔线-----------------------
再传一个程序磁盘查看器。。
界面:

源码需要就下载吧,不贴了,很简单。
文件清理工具程序及源码[MFC]:
可运行程序.zip
源码.zip
磁盘查看器程序及源码[SDK]:
可执行1.zip
源码1.zip

上传的附件 界面.png
可运行程序.zip
源码.zip
源码1.zip
挤满.png
可执行1.zip

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功