VC工程清理工具

资源路径

http://download.csdn.net/detail/songly1/6576029

 

写了一个简易的VC工程清理工具,针对vc6.0及vc2008。

简单的清除工具,没有区分.obj,.link等文件,直接删除整个debug和release目录。另外还删除,ncb文件,因为在VS里面该文件太大。

 

1、网上copy了一段设置路径的代码如下:

CString strFilePath;
 TCHAR pszBuffer[_MAX_PATH];
 BROWSEINFO bi;  LPITEMIDLIST pidl;
 bi.hwndOwner = NULL;
 bi.pidlRoot = NULL;
 bi.pszDisplayName = pszBuffer;
 bi.lpszTitle = _T("Ñ¡Ôñ²¥³ö±í·¾¶");
 bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;
 bi.lpfn = NULL;
 bi.lParam = 0;
 if((pidl = SHBrowseForFolder(&bi)) != NULL)
 {
  if(SHGetPathFromIDList(pidl, pszBuffer))
  {
   CString strTemp(pszBuffer);   strFilePath = strTemp;
   if (strFilePath.GetLength() <= 1)
   {
   }
   else if (strFilePath.Right(1) != _T("\\")) 
    strFilePath += _T("\\");
  }
 }
 GetDlgItem(IDC_EDIT1)->SetWindowText(strFilePath);

 

2、改写一段find程序,代码略

主要是递归遍历文件,分别对文件夹及文件做判断,如果文件夹名字是debug或release则删除。

删除文件夹尝试了两种方式,一是网上copy的一段遍历删除代码,但是有个问题,对隐藏文件则无效,且包含隐藏文件的目录无法删除。

第二种方式用system调用cmd命令rd/s/q c:\..\..\方式,但是system每次都开一个cmd窗口,很麻烦,如果清除量很大的时候太消耗资源,且很慢,暂没找到方法解决

 

删除文件的方法很多,程序中就用了::DeleteFile();

 

3、该程序还有很多不完善的地方,比如:

1)删除的时候是直接删除而不是移到回收站,无法恢复。

2)未采用多线程,界面可能卡死。

3)上面也说了未解决system方法的多个cmd窗口问题或迭代法删除隐藏文件方法。(当然有隐藏文件,比如你的svn)

4)不可选择你需要保留的文件,简易删除固定,复杂点可以添加设置可选删除的后缀名。

 

不想改了,就是简单用一下,花了一两个小时就够了,只要知道上面的问题注意一下,对于那种喜欢把debug目录用于存放重要东西的程序员慎用。


 

 

你可能感兴趣的:(VC,删除文件,删除文件夹,工程清理,清理工程)