删除目录以及目录下的所有文件(六)

本文介绍了一个使用C++编写的简单程序,能够实现选择并删除指定文件夹及其内部的所有文件。通过创建对话框、添加控件、编写递归删除函数等步骤实现了这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

删除目录以及目录下的所有文件()
本文讲述如何删除目录以及其下的所有文件。
1.      创建一个对话框工程:DeleteFolder
2.      添加一个文本框控件来显示选择的文件夹:m_Path
3.      添加一个“浏览按钮”,代码如下:
       CStringReturnPath;
       TCHARszPath[_MAX_PATH];
       BROWSEINFObi;
       bi.hwndOwner = NULL;
       bi.pidlRoot = NULL;
       bi.lpszTitle = _T("请选择一个文件夹");
       bi.pszDisplayName = szPath;
       bi.ulFlags = BIF_RETURNONLYFSDIRS;
       bi.lpfn = NULL;
       bi.lParam = NULL;
       LPITEMIDLISTpItemIDList = SHBrowseForFolder(&bi);
       if(pItemIDList)
       {
              if(SHGetPathFromIDList(pItemIDList,szPath))
                     ReturnPath = szPath;
       }
       else
              ReturnPath = "";
       m_Path.SetWindowText(ReturnPath);
4.      添加一个函数,用来递归删除目录下的文件,如下:
voidCDeleteFolderDlg::DelFolder(CStringpath)
{
       CFileFindfile;
       if(path.Right(1) != "//")
              path +="//*.*";
       BOOLbf;
       bf = file.FindFile(path);
       while(bf)
       {
              bf = file.FindNextFile();
              //是文件时直接删除
              if (!file.IsDots() && !file.IsDirectory())
                     DeleteFile(file.GetFilePath());
              elseif (file.IsDots())
                     continue;
              elseif (file.IsDirectory())
              {
                     path = file.GetFilePath();
                     //是目录时,继续递归调用函数删除该目录下的文件
                     DelFolder(path);
                     //目录为空后删除目录
                     RemoveDirectory(path);
              }
       }
}
5.      添加一个按钮“删除”,代码如下:
       CStringstr;
       m_Path.GetWindowText(str);
       DelFolder(str);
 
       if(RemoveDirectory(str))
       {
              MessageBox("删除成功!");
              return;
       }
完成,可以删除选定的目录及下的所有文件。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值