现在的位置: 首页 > 综合 > 正文

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

2014年03月05日 ⁄ 综合 ⁄ 共 1568字 ⁄ 字号 评论关闭

 

删除目录以及目录下的所有文件()
本文讲述如何删除目录以及其下的所有文件。
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;
       }
完成,可以删除选定的目录及下的所有文件。

 

抱歉!评论已关闭.