当前位置:  编程技术>c/c++/嵌入式

VC实现批量删除指定文件的方法

    来源: 互联网  发布时间:2014-10-26

    本文导语:  本文所述实例主要实现了删除某个盘符下指定位置的文件,可以是TXT、doc、jpeg等格式,只要选定格式后,再定义好盘符,即可一键删除所有指定类型的文件。再次提示删除前请确认,且删除后不可恢复。 以下是最主要的核心...

本文所述实例主要实现了删除某个盘符下指定位置的文件,可以是TXT、doc、jpeg等格式,只要选定格式后,再定义好盘符,即可一键删除所有指定类型的文件。再次提示删除前请确认,且删除后不可恢复。
以下是最主要的核心代码,其它代码读者可以自己添加。

SHFILEINFO shInfo;
memset(&shInfo,0,sizeof(SHFILEINFO));
HIMAGELIST hImage = (HIMAGELIST)SHGetFileInfo("C:\",0,&shInfo, sizeof( SHFILEINFO ),
 SHGFI_SYSICONINDEX | SHGFI_SMALLICON );
m_ImageList.Attach(hImage); 
m_ComboEx.SetImageList(&m_ImageList);
m_ComboEx.ResetContent();
char pchDrives[128] = {0};
char* pchDrive;
GetLogicalDriveStrings(sizeof(pchDrives), pchDrives); //列举盘符
pchDrive = pchDrives;
int nItem = 0;
while(*pchDrive)
{
 COMBOBOXEXITEM   cbi;
 CString      csText;
 cbi.mask = CBEIF_IMAGE|CBEIF_INDENT|CBEIF_OVERLAY|
   CBEIF_SELECTEDIMAGE|CBEIF_TEXT;
 SHFILEINFO shInfo; //定义文件信息
 int nIcon;
 SHGetFileInfo(pchDrive, 0, &shInfo, sizeof(shInfo),
  SHGFI_ICON|SHGFI_SMALLICON); //获取系统文件图标
 nIcon = shInfo.iIcon;
 //设置COMBOBOXEXITEM结构
 cbi.iItem  = nItem;
 cbi.pszText  = pchDrive;
 cbi.cchTextMax = strlen(pchDrive);
 cbi.iImage  = nIcon;
 cbi.iSelectedImage = nIcon;
 cbi.iOverlay  = 0;
 cbi.iIndent  = (0 & 0x03); 
 m_ComboEx.InsertItem(&cbi); //插入数据
 nItem++;
 pchDrive += strlen(pchDrive) + 1;
 }
 return TRUE; // return TRUE unless you set the focus to a control
}
void CDeleteDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
 if ((nID & 0xFFF0) == IDM_ABOUTBOX)
 {
 CAboutDlg dlgAbout;
 dlgAbout.DoModal();
 }
 else
 {
 CDialog::OnSysCommand(nID, lParam);
 }
}
void CDeleteDlg::OnPaint() 
{
 if (IsIconic())
 {
 CPaintDC dc(this); // device context for painting
 SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
 // Center icon in client rectangle
 int cxIcon = GetSystemMetrics(SM_CXICON);
 int cyIcon = GetSystemMetrics(SM_CYICON);
 CRect rect;
 GetClientRect(&rect);
 int x = (rect.Width() - cxIcon + 1) / 2;
 int y = (rect.Height() - cyIcon + 1) / 2;
 // Draw the icon
 dc.DrawIcon(x, y, m_hIcon);
 }
 else
 {
 CDialog::OnPaint();
 }
}
HCURSOR CDeleteDlg::OnQueryDragIcon()
{
 return (HCURSOR) m_hIcon;
}
void CDeleteDlg::DelFile(CString path,CString name)
{
 CString strtemp;
 if (path.Right(1) != "\") //判断路径是否以结尾
 strtemp.Format("%s\*.*",path);//设置通配符
 else
 strtemp.Format("%s*.*",path);//设置通配符
 CFileFind findfile;
 BOOL bfind = findfile.FindFile(strtemp);//查找文件
 while (bfind)//循环查找
 {
 bfind = findfile.FindNextFile();//查找下一个文件
 if(!findfile.IsDots() && !findfile.IsDirectory())
 {
  CString str = findfile.GetFileName();
  int index  = str.ReverseFind('.');
  if(str.Right(str.GetLength()-index) == name)
  {
  DeleteFile(findfile.GetFilePath());
  }
 }
 else if (findfile.IsDots()) 
 {
  continue;
 }
 else if (findfile.IsDirectory())//如果是目录
 {
  DelFile(findfile.GetFilePath(),name);//递归查找
 }
 }
}
void CDeleteDlg::OnButdelete() 
{
 // TODO: Add your control notification handler code here
 CString path,name;
 m_ComboEx.GetWindowText(path);
 m_ExName.GetWindowText(name);//获得文件扩展名
 DelFile(path,name);
 MessageBox("已删除指定类型文件!");
}

这里省去了窗体部分的代码,进行过VC开发的朋友应该可以看得懂的。


    
 
 

您可能感兴趣的文章:

  • 如何用shell实现将指定文件中的指定的字符串替换为我指定的另外的字符串
  • 不让用户选择文件,程序指定本地文件,Java可以实现上传到服务器吗?
  • 在ACC下不使用循环怎样实现,读取文件指定行的数据.
  • 怎样实现利用fprintf,输出定长字串,位数不足时在左侧填入指定字符填充。。
  • 怎样在JAVA里实现获取指定服务器上所有可用数据库的列表??
  • redhat9如何配置,实现在用户登陆的时候自动执行指定程序。
  • linux下怎么实现在屏幕上指定地方输出字符?
  • 如何实现用jsp将sql server 的数据备份出来!并指定存放路径!
  • 如何编个shell,实现搜索当前目录和子目录的文件中包含指定字符的功能!!
  • servlet 中可以实现将指定信息提交到外部的接收页吗?
  • 在JSP中,我想查找本机指定目录下的一个文件,怎么来实现呢?
  • 用SHELL如何实现在指定的文件位置,删除或者增加一行
  • **********如何根据线程的handle,来实现挂起指定线程********
  • C实现从远程主机FTP指定文件
  • shell如何实现删除指定若干行?
  • jquery实现google搜索指定网页内容的代码
  • C#实现移除字符串末尾指定字符的方法
  • 请问:如何用SH脚本实现从一个文件中取出指定的行?
  • c#指定区域屏幕截屏功能实现代码
  • 绝对给分!各位请进!用指定的字符初始化一个字符串,如何用最简单的方法实现(null)?
  • 怎么实现,动态的增加和删除input,删除时用radiobox选中,然后点删除,即可。谢谢
  • 100分相送,怎么实现,动态的增加和删除input,删除时用radiobox选中,然后点删除,即可
  • 怎么为这个小程序实现“按‘<-’(删除键) 删除前一字符”的功能?
  • LINUX 下如何实现删除文件进度条
  • bash shell 如何实现删除文件中的各行字符呢?
  • ThinkPHP实现批量删除数据的代码实例
  • 如何用shell实现向文件删除或添加一行信息
  • 怎样检测一个对象的实例的存在,并且删除它?程序是怎样实现的?谢谢!
  • DevExpress实现GridControl删除所有行的方法
  • 在jsp中怎么实现删除时弹出确定、取消对话框,然后根据选择看是否继续?急
  • C#下实现创建和删除目录的实例代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 我要实现当进程打开文件时,根据文件名判断是否符合要求,符合后处理文件,再把文件返回给进程,怎么实现啊
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • socket实现多文件并发传输,求助多线程实现问题?
  • linux内存文件系统ramfs实现原理
  • 我想用APPLET实现读取客户端的图片文件,该如何实现?
  • c/c++开源软件 iis7站长之家
  • linux下如实现与window下的驱动器实现文件共享??
  • 如何在其他盘中实现对这个盘中所有文件和文件的8映射
  • php实现文件下载简单示例(代码实现文件下载)
  • 如何用Java实现二进制文件到文本文件的相互转化?
  • 急!如何编程实现pdf文件转html文件?
  • 问一个问题。请问如何在文件系统管理并使用设备,也就是当一个设备装载,下载时。文件系统是如何实现的
  • 请问如何实现将一个文件中的某一行拷贝到另一个文件中?答对定给分!
  • 请问在jsp中如何实现相对路径?我在jsp文件中指定相对路径的文件,可是程序找不到!
  • 实现core文件自动生成配置文件的方法
  • 用户通过mozilla访问页面文件,提交的参数要记录到系统的配置文件中去,如何来实现这个接口?
  • 求助 shell中split命令如何实现文件分割 并统计分割文件个数。分割完之后,命名方式从 文件名.001 开始
  • sftp实现两台主机之间传输文件(把一个主机中的文件拷贝到另一个)
  • 急问:怎么将一个文本文件平均拆分成10个文本文件?在shell里面怎么实现?谢谢
  • java文件复制代码片断(java实现文件拷贝)
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • interface 到底有什么用???实现接口,怎么实现??
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 怎么用Jsp实现在页面实现树型结构?
  • 通过javascript库JQuery实现页面跳转功能代码
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • php实现socket实现客户端和服务端数据通信源代码
  • 网站重定向用C语言实现iptables,ACL实现
  • flash AS3反射实现(describeType和getDefinitionByName)
  • 在linux下如何编程实现nslookup命令实现的IP地址和域名互相转换的功能?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3