Starteam 2005 COM API

时间:2020-03-06 14:41:27  来源:igfitidea点击:

有没有人使用过StarTeam COM API(特别是与C#集成)。

我需要编写一个帮助程序函数,该函数从Starteam返回一个目录结构,但是使用此API我能够检索到的只是一个视图列表。

还有其他人尝试过吗?

解决方案

Starteam对象模型是启发式的,项目包含视图,视图包含文件夹,文件夹包含项目(子文件夹,文件,cr等)

因此,一旦有了视图列表,就可以获取属于该视图的文件夹,然后,我们将拥有一些属性来确定它们如何映射到本地文件系统,视图对象和文件夹对象都具有只读路径属性。但是,还有其他4个感兴趣的属性,在查看对象的DefaultPath和AlternatePath属性以及文件夹对象的DefaultPathFragment和AlternatePathFragment上。

哦,出于完整性考虑,如果我们不想自己编写递归代码来浏览文件夹的目录,那么可以使用一个名为FolderListManager的帮助器类来为我们完成艰苦的工作

void BtnFindClick(object sender, EventArgs e)
{
    Borland.StarTeam.View v = StarTeamFinder.OpenView("username:pwd@server:49201/Project");
    FolderListManager lm = new FolderListManager(v);
    lm.IncludeFolders(v.RootFolder,-1); // -1 means recursively add child folders
    StringBuilder sb = new StringBuilder();
    foreach(Folder f in lm.Folders)
    {
        sb.AppendLine(f.Path);
    }
    txtResults.Text = sb.ToString();
}

我们无需使用COM即可访问StarTeam API。有可用的.Team StarTeam SDK的.NET版本。