码迷,mamicode.com
首页 > 其他好文 > 详细

TFS二次开发-基线文件管理器(3)-源码文件的读取

时间:2014-09-05 15:52:31      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   color   io   ar   for   文件   

TFS登录成功后,就可以开始读取源码目录树了。

一般来说,我不建议将整个树全部读取出来,因为这里不光存有项目文件,还有项目源码。如果全部读取出会是非常大的一棵树。因此我建议只读出根目录,每一次点击打开一级子目录。这样找到自己需要选取的文件即可。

上一节中,我们已经登录完成。

 

//获取选择的项目名称,这里是单项目,一次取pi[0]的名称

pi = tpp.SelectedProjects;

ProjectURL = pi[0].Name;

 

 

VersionControlServer version = server.GetService(typeof(VersionControlServer)) as VersionControlServer;

//此处获取项目第一级文件目录

ItemSet items = version.GetItems(@"$\" + ProjectURL, RecursionType.OneLevel); 

 

 

接下来构建项目的第一级目录树。获取的item是一个包括父节点的目录,因此要去除后再添加

//先清空树

treeView1.Nodes.Clear();


//获取父节点

Item SubItem = items.Items[0];

string MainSub = SubItem.ServerItem;

foreach (Item item in items.Items)

{

//去除父节点

if (MainSub == item.ServerItem)
{

}

else

{

TreeNode tnadd = new TreeNode(item.ServerItem);

tnadd.Name = item.ServerItem;

treeView1.Nodes.Add(item.ServerItem, item.ServerItem);

}

} 

 

执行后的效果如下。项目下有两级目录。

bubuko.com,布布扣

 

接下来做树的点击事件。通过递归,向点击的节点添加子节点。

 /// <summary>

/// 选择结点后的处理事件

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void treeView1_AfterCheck(object sender, TreeViewEventArgs e)

{

if (e.Action != TreeViewAction.Unknown)

{

version = server.GetService(typeof(VersionControlServer)) as VersionControlServer;

ItemSet items = version.GetItems(e.Node.Text, RecursionType.OneLevel);


foreach (Item item in items.Items)

{

if (e.Node.Text == item.ServerItem)

{

}

else

{

//这里用name来存储changeset的版本ID,text存显示路径

e.Node.Nodes.Add(item.ServerItem, item.ServerItem, item.ChangesetId);

}

e.Node.Expand();

}

}

}

 

 

最终的效果如下。

bubuko.com,布布扣

TFS二次开发-基线文件管理器(3)-源码文件的读取

标签:des   style   blog   http   color   io   ar   for   文件   

原文地址:http://www.cnblogs.com/elvis0123/p/3958080.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!