SVN控制说白了就是在.svn文件夹内把项目文件的信息保存,清除SVN控制其实就是把.svn文件夹删除就可以了。但是如果文件夹太多,总不可能一个个文件夹去删除吧,所以写了个遍历文件夹删除的小工具。

RT:

using System;
using System.IO;
using System.Windows.Forms; namespace RemoveSvnControl
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} /// <summary>
/// 选择按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_select_Click(object sender, EventArgs e)
{
var fbd = new FolderBrowserDialog();
if (fbd.ShowDialog() == DialogResult.OK)
{
txt_project_path.Text = fbd.SelectedPath;
}
}
/// <summary>
/// 清除按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_clear_Click(object sender, EventArgs e)
{
var proPath = txt_project_path.Text.Trim();
if (string.IsNullOrEmpty(proPath) || !Directory.Exists(proPath))
{
MessageBox.Show(@"此路径不存在!", @"错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
} var pro = new DirectoryInfo(proPath); var sonDirectories = pro.GetDirectories(); if (sonDirectories.Length == )
{
MessageBox.Show(@"此路径不存在SVN控制器!", @"错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
} try
{
RemoveSvnDirectories(pro);
MessageBox.Show(@"移除SVN控制成功!", @"成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, @"错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
} }
/// <summary>
/// 移除.svn文件夹
/// </summary>
/// <param name="proInfo"></param>
private void RemoveSvnDirectories(DirectoryInfo proInfo)
{
foreach (var directory in proInfo.GetDirectories())
{
if (directory.Name == ".svn")
{
foreach (var systemInfo in directory.GetFileSystemInfos())
{
if (systemInfo is DirectoryInfo)
{
//遍历删除目录
DeleteDirectory((DirectoryInfo)systemInfo);
systemInfo.Delete();
}
else
{
//删除文件
systemInfo.Delete();
}
} directory.Delete();
}
}
}
/// <summary>
/// 遍历删除文件夹
/// </summary>
/// <param name="directoryInfo"></param>
private void DeleteDirectory(DirectoryInfo directoryInfo)
{
foreach (var info in directoryInfo.GetFileSystemInfos())
{
if (info is DirectoryInfo)
{
//遍历删除目录
DeleteDirectory((DirectoryInfo)info);
info.Delete();
}
else
{
//删除文件
info.Delete();
}
}
}
}
}

[个人小工具]清除SVN控制的更多相关文章

  1. Python小工具--删除svn文件

    有的时候我们需要删除项目下的svn相关文件,但是SVN会在所有的目录下都创建隐藏文件.svn,手工一个个目录查找然后删除显然比较麻烦.所以这里提供了一个Python小工具用于批量删除svn的相关文件: ...

  2. MyEclipse2014 安装SVN小工具

    1.下载svn小工具 下载链接:folderID=2240">http://subclipse.tigris.org/servlets/ProjectDocumentList?fold ...

  3. 2014年Windows平台软件推荐:神器小工具(骨灰级

    原文  http://www.wtoutiao.com/a/120621.html 底层工具 “If you know how to use Process Monitor competently, ...

  4. Windows平台软件推荐:神器小工具(骨灰级)

    底层工具 "If you know how to use Process Monitor competently, people of both sexes will immediately ...

  5. html小工具——文章注释编辑器

    在网上阅读文章时,读者时常会想针对某段文字写一些自己的感想,可惜大部分阅读网站并不提供这样的功能,读者往往只能将文本复制到本地或在线的编辑器中编辑注释,之后如果想在其他地方回顾这些注释也必须先本地安装 ...

  6. MySQL数据归档小工具推荐--mysql_archiver

    一.主要概述 MySQL数据库归档历史数据主要可以分为三种方式:一.创建编写SP.设置Event:二.通过dump导入导出:三.通过pt-archiver工具进行归档.第一种方式往往受限于同实例要求, ...

  7. JSON生成c#类代码小工具

    JSON生成c#类代码小工具 为什么写这么个玩意 最近的项目中需要和一个服务端程序通讯,而通讯的协议是基于流行的json,由于是.net,所以很简单的从公司代码库里找到了Newtonsoft.dll( ...

  8. iOS 源代码管理工具之SVN

    源代码管理工具之SVN 源代码管理工具SVN是一款非常强大的源代码管理工具,现在国内70%-90%的公司都在使用SVN来管理源代码,下面就让小编给大家着重介绍一下SVN的使用,SVN的使用主要分为下面 ...

  9. PHP API接口测试小工具

    前端时间给手机客户端做接口,当时弱爆了,写完API接口后,也不怎么测试,最后是等客户端调用的时候检验API的正确性. 后面利用PHP的curl实现Post请求,检验API接口的正确性:配合前面做的一个 ...

随机推荐

  1. c++中,int *a=new int(120)语句的意思

    int *a=new int(120); 申请一个整型变量空间,赋初值为120,并定义一个整型指针a指向该地址空间 int *a=new int[120]; 申请120个整型变量空间,没有赋初值,并定 ...

  2. 关于RunLoop

    首先我们要先认识一下这个RunLoop; NSRunLoop是Cocoa框架中的类,与之的Core Fundation 中CFRunLoopRef类. 这两者的区别是,前者不是线程安全的,而后者是线程 ...

  3. [TPYBoard - Micropython] 五分种学会用TPYBoard - GPS 制作短信群发机

    转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604   一.什么是TPYBoard-GPS TPYBoard-GPS又称TPYBoa ...

  4. iOS性能检测之Instrunments - 几种常用工具简单介绍

    Instrunments:  没错,就是这货,很多人平时开发可能不一定会用到这个,但我要说的是,学会使用它,会让你加分不少哦 先来一张全家福: 1.打开方式 或者 两种方式都行. 2.今天主要介绍一下 ...

  5. 使用SSM框架 搭建属于自己的APP二维码合成、解析、下载

    最近公司的app上线了,在推广APP的时候出现了一个问题,因为Android和IOS的下载地址不一样,那么在推广的时候就要推广两个二维码,这样比较麻烦,如何简化我们的推广,让IOS用户扫描二维码的时候 ...

  6. mybatis基础,mybatis核心配置文件properties元素

    peroperties元素 可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递 为dataSource元素配置 <proper ...

  7. 008 Java集合浅析3

    在前面的几节里,本教程从整体架构上去把握了JDK中的集合框架,并简单分析了其中Collection组的顶级接口,知道Collection接口的常见直接子接口有List.Set和Queue,并就这三个子 ...

  8. CDIF: 基于JSON的SOA软件框架

    通用设备互联框架(CDIF)是一个具备中美知识产权保护的,基于web的连接框架,目前有部分开源实现存放在: GitHub - out4b/cdif: Common device interconnec ...

  9. 在.NET项目中使用PostSharp,使用MemoryCache实现缓存的处理(转)

    在之前一篇随笔<在.NET项目中使用PostSharp,实现AOP面向切面编程处理>介绍了PostSharp框架的使用,试用PostSharp能给我带来很多便利和优势,减少代码冗余,提高可 ...

  10. 1596: [Usaco2008 Jan]电话网络

    1596: [Usaco2008 Jan]电话网络 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 601  Solved: 265[Submit][S ...