2008-09-24 5 views
3

Кто-нибудь работал с API-интерфейсом StarTeam COM (В частности, intergrating with C#).Starteam 2005 COM API

Мне нужно написать вспомогательную функцию, которая возвращает структуру каталогов из Starteam, но все, что мне удалось получить с помощью этого API, было списком просмотров.

Пробовал ли кто-нибудь еще?

ответ

2

объект StarTeam модель heirachical, проекты содержат представления, представления содержат папки, папки содержат элементы (дочерние папки, файлы, кр-х и т.д.)

Поэтому, как только у Вас есть свой список просмотра вы можете получить папки, которые принадлежат то у вас есть несколько свойств, которые определяют, как они сопоставляются с локальной файловой системой, и объект вида, и объекты папки имеют свойство readonly path. Есть еще 4 свойства, которые интересны, хотя в объекте представления читаются свойства DefaultPath и AlternatePath, а в папке - DefaultPathFragment и AlternatePathFragment.

4

О, в интересах полноты, если вы не хотите, чтобы написать рекурсивную код для навигации по heirachy папок самостоятельно, есть вспомогательный класс, который вы можете использовать, чтобы сделать тяжелую работу за вас называется FolderListManager

void BtnFindClick(object sender, EventArgs e) 
{ 
    Borland.StarTeam.View v = StarTeamFinder.OpenView("username:[email protected]: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(); 
} 
1

Вам не нужно использовать COM для доступа к API StarTeam. Существует версия .NET версии StarTeam SDK.

+1

Версия .NET - это просто оболочка вокруг версии COM. – FlySwat 2009-04-18 18:28:06

Смежные вопросы