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();

}

}

}

最终的效果如下。

时间: 2024-08-01 09:48:59

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

TFS二次开发-基线文件管理器(1)-设计

CMMI在做基线文件管理的时候,常常是需要记录一部分基线文件的版本.并且这个基线文件记录也需要进行版本控制.TFS在做这件事的时候一般来说会选用标签(Lable)来做一系列文件的版本记录. 但是我发现TFS并不能选取某几个文件进行版本记录(实际上是可以的,但是很麻烦,需要建立Lable后再修改). 于是,我们可以将项目文件以树形结构读出,然后选取需要做基线控制的几个文件.将其版本和路径保存到文件中,并且只为这几个文件建立Lable. 这个文件可以放入到TFS中做版本控制,今后也可以读出再做修改,

TFS二次开发-基线文件管理器(2)-TFS登录

首先需要做一个TFS的登录. 以前的文章是使用的DomainProjectPicker 最新的VS里面使用的是TeamProjectPicker 首先可以在WinForm程序上写一个Button,然后写入如下代码 Uri tfsUri = new Uri("your TFS"); TfsTeamProjectCollection server = new TfsTeamProjectCollection(tfsUri); TeamProjectPicker tpp = new Team

TFS二次开发-基线文件管理器(4)-标签的创建

上一节已经完成了源码文件的读取,如果要将已经选择的文件保存为一个标签(Lable).在VS我们只能对一个目录做标签,非常的不方便.如果用下面的方法,将选择的文件路径保存为一个List在打标签,就非常的灵活了. 保存为List的方法很简单,需要递归将已经选择的书中的文件保存一下. 这里为了显示方便,我先将其存入一个Listbox中, listBox1.Items.Clear(); for (int i = 0; i < treeView1.Nodes.Count; i++) { TreeNode

php扩展开发笔记(2)多个源码文件的配置和编译

我们在开发过程中,为了代码得可读性和易维护性,肯定是需要多个代码文件的,而不仅仅是通过 ext_skel 生成得骨架文件.这篇文章主要介绍下,多个代码文件的时候,我们需要注意什么,以及怎么做. 我的代码文件如下(slash为我的扩展名) // ext_skel 生成默认得模块相关的主要文件 php_slash.h // 头文件 slash.c // 源码文件 config.m4 // 编译的时候需要修改的文件 在这个默认生成的骨架文件里面,我们只要执行下面几步,就可以完成一个新的扩展了. 删除c

[deviceone开发]-基础文件管理器

一.简介 主要实现本地文件管理功能,主要功能为复制.粘贴.剪切目录或者文件. 二.效果 三.相关下载 https://github.com/do-project/code4do/tree/master/datafile_manager_demo 四.相关讨论 http://bbs.deviceone.net/forum.php?mod=viewthread&tid=851&highlight=%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86 五.更多案例 http:

IIS 配置 PHP 环境搭建:web 文件管理器

一.基础知识 我们知道php配置有几种: 1.CGI方式加载PHP环境,通常就是IIS里面配置解释器为 php.exe,早期比较常见,目前使用较少. 特点是:稳定,但效率太低. 2.ISAPI方式加载PHP环境,通常就是IIS里面配置解释器为php5isapi.dll,目前使用最多,应用最广. 特点是:多线程,效率较高,但不够稳定. 3.FastCGI方式加载PHP环境,在IIS环境里并不常见,但其它系统环境应用还是有的,不过IIS7.0开始内置FastCGI了. 特点是:高效率,高稳定性,属于

免费的在线Web文件管理器:Net2FTP,Pydio,eXtplorer,KodExplorer–功能强大

https://www.freehao123.com/web-ftp/ 经常有朋友在使用一些没有带文件管理器的空间时,苦于没有办法来解压上传的文件压缩包,而如果不先上传压缩包,直接上传文件夹的话耗费的时间太多.还有一些朋友希望将空间变成一个文件存储站,这时就需要一个功能足够多也足够强大的在线文件管理器了. 在线的Web文件管理器非常地多,尤其是以PHP在线文件管理器最多,但是真正能够满足我们的文件管理需求同时也容易安装和使用的Web文件管理器不是很多.本篇文章部落就精选四个界面友好.功能丰富和安

介绍分享几款免费的在线Web文件管理器

经常有朋友在使用一些没有带文件管理器的空间时,苦于没有办法来解压上传的文件压缩包,而如果不先上传压缩包,直接上传文件夹的话耗费的时间太多.还有一些朋友希望将空间变成一个文件存储站,这时就需要一个功能足够多也足够强大的在线文件管理器了. 在线的Web文件管理器非常地多,尤其是以PHP在线文件管理器最多,但是真正能够满足我们的文件管理需求同时也容易安装和使用的Web文件管理器不是很多.本篇文章部落就精选四个界面友好.功能丰富和安装方便的Web文件管理器:net2ftp.Pydio.eXtplorer

Web在线文件管理器(web os) KODExplorer

KODExplorer是款开源的Web在线文件管理.代码编辑器.它提供了类windows经典用户界面,一整套在线文件管理.文件预览.编辑.上传下载.在线解压缩.音乐播放功能.让你直接在浏览器端实现web开发.源码文件预览.网站部署的同时拥有与本地操作一样方便.快捷.安全的体验.