关闭

cleanall工程

标签: stringtextboxbuttonobjectc#语言
813人阅读 评论(0) 收藏 举报
分类:

用vc时间长了以后,会生成很多debug,release文件夹,里面有工程的相关编译文件,基本上都是没有用的.但空间占用很多.写了这个小东西,可以把这两个文件夹下的文件都删除了.

同样的功能如果用别的语言来实现,需要一段时间,可是用c#,,整个工程从构思到完工,只用了10分钟时间。真的是RAD。

程序对给的路径进行分析,如果不存在就提示,存在则处理,处理原则:如果是debug,release就删除该文件夹下的所有文件。否则就进行递归调用。

  private void button1_Click(object sender, System.EventArgs e)
  {
   string sPDir = textBox1.Text;
   if(!Directory.Exists(sPDir))
   {
    MessageBox.Show(sPDir+" not exist!");
    return;
   }

   //
   checkdir(sPDir.ToLower());
//   Directory.Delete(sPDir);
   MessageBox.Show(sPDir+" is cleaned!");
  }
  private void checkdir(string strPath)
  {
   //对给定的文件夹进行递归,删除所有debug,release文件夹.
   if(strPath.IndexOf("debug")>0)
   {
    CleanDir(strPath);
   }
   else if(strPath.IndexOf("release")>0)
   {
    CleanDir(strPath);
   }

   //对于非debug, release文件夹,进行递归
   string[] strDirs = Directory.GetDirectories(strPath);
   foreach(string sDir in strDirs)
   {
    checkdir(sDir.ToLower());
   }
  }
  private void CleanDir(string strDir)
  {
   string[] strFile = Directory.GetFiles(strDir);
   foreach(string sFile in strFile)
   {
    File.Delete(sFile);
   }
   return;
  }

已知bug:呵呵,因为用了string.indexof方法,对于形如 .../debug/.../anystring 这类文件夹会把不希望删除的文件也删除了。好点的方法应该是检测最后一个"/"之后的字段是不是debug or  release.

呵呵。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:61867次
    • 积分:931
    • 等级:
    • 排名:千里之外
    • 原创:30篇
    • 转载:10篇
    • 译文:0篇
    • 评论:10条
    最新评论