如何获取项目的文件名? - Team Foundations SDK

时间:2011-03-22 16:18:11

标签: c# version-control tfs

我正在尝试从TFS获取名称文件。我以递归方式从一个位置获取所有文件,然后循环遍历这些文件以查找特定文件。看来VersionControl.Client.Item对象不公开文件名(或foldername)。

tfs.EnsureAuthenticated();
VersionControlServer vcs = versionControlServer)tfs.GetService(typeof(VersionControlServer));
var allStaticFiles = vcs.GetItems(path + "*", RecursionType.Full).Items;
foreach (var staticFile in allStaticFiles)
{
  if(staticFile == ?? // need the filename)
  {
  }

1 个答案:

答案 0 :(得分:2)

(假设TFS2008。)

vcs.GetItems(...).Items的类型为Item[]

因此staticFileItem个实例。

Item的属性都是服务器端,因为路径的详细信息将取决于客户端的工作区映射(同一用户可能在同一台计算机上有多个工作区,包括此项)。

您可以使用Item.ServerItem获取文件名(取最后一个路径元素)

在路径中,获取一个代表当前工作空间的Workspace实例,并使用其中一种方法将ServerItem映射到本地路径(有一些具有明显不同的行为,没有更多上下文目前尚不清楚哪一个是正确的。)