三测试使用
程序测试运行界面
界面部分代码大多数由设计器生成下面列出了主要添加代码
//委托更新文本框
private delegate void AppendTextHandler(string content);
//标记转换操作是否完成
private int convertOK =;
private SystemWindowsFormsTextBox textBoxFolder;//路径文本框
private SystemWindowsFormsButton buttonFolder;//浏览按钮
private SystemWindowsFormsTextBox textBoxInfo;//信息显示框
private SystemWindowsFormsButton buttonOK;//运行按钮
private SystemWindowsFormsButton buttonCancel;//退出按钮
按钮处理函数用来打开一个路径选择框
private void buttonFolder_Click(object sender SystemEventArgs e)
{
FolderBrowserDialog myDialog = new FolderBrowserDialog();
myDialogShowNewFolderButton = false;
myDialogDescription = 选择需要处理的解决方案或项目目录;
if(myDialogShowDialog()==DialogResultOK)
thistextBoxFolderText = myDialogSelectedPath;
myDialogDispose();
}
运行函数在这里面实例化VssConverter类并调用了RemoveVss方法运行时把几个按钮禁了里面注册了两个事件起信息传递作用不过对于直接在地址栏中输入非法路径没有做具体判断
private void buttonOK_Click(object sender SystemEventArgs e)
{
if(thistextBoxFolderTextLength>)
{
thistextBoxInfoClear();
nvertOK = ;
thisbuttonOKEnabled = false;
thisbuttonFolderEnabled = false;
thisbuttonCancelEnabled = false;
thistextBoxFolderEnabled = false;
VssConverter vssConverter = new VssConverter(thistextBoxFolderText);
vssConverterOperateNotify += new OperateNotifyHandler(vssConverter_OperateNotify);
vssConverterThreadCompleted += new EventHandler(vssConverter_ThreadCompleted);
vssConverterRemoveVss();
}
else
MessageBoxShow(请输入解决方案或项目路径!);
}
下面是两个事件处理函数第一个是用来在前台即时显示当前处理的文件信息第二个函数是用来通知线程的执行结果函数如下
// 信息通知
private void vssConverter_OperateNotify(object sender VssEventArgs e)
{
AppendTextHandler ath = new AppendTextHandler(thistextBoxInfoAppendText);
thistextBoxInfoBeginInvoke(athnew object[]{eMessage+EnvironmentNewLine});
}
// 线程结束通知
private void vssConverter_ThreadCompleted(object sender EventArgs e)
{
if(nvertOK==)
nvertOK++;
else
{
thisbuttonOKEnabled = true;
thisbuttonFolderEnabled = true;
thisbuttonCancelEnabled = true;
thistextBoxFolderEnabled = true;
thistextBoxInfoAppendText(#### 转换完成 ####);
}
}
总结程序通过搜索指定目录下的文件根据扩展名进行相应的操作来完成处理其中为了加快运行速度增加了线程来处理