首页 > 代码库 > TFS二次开发-基线文件管理器(3)-源码文件的读取
TFS二次开发-基线文件管理器(3)-源码文件的读取
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);}}
执行后的效果如下。项目下有两级目录。
接下来做树的点击事件。通过递归,向点击的节点添加子节点。
/// <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();}}}
最终的效果如下。
TFS二次开发-基线文件管理器(3)-源码文件的读取
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。