我正在尝试从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)
{
}
答案 0 :(得分:2)
(假设TFS2008。)
vcs.GetItems(...).Items
的类型为Item[]
。
因此staticFile
是Item
个实例。
Item
的属性都是服务器端,因为路径的详细信息将取决于客户端的工作区映射(同一用户可能在同一台计算机上有多个工作区,包括此项)。
您可以使用Item.ServerItem
获取文件名(取最后一个路径元素)
在路径中,获取一个代表当前工作空间的Workspace
实例,并使用其中一种方法将ServerItem
映射到本地路径(有一些具有明显不同的行为,没有更多上下文目前尚不清楚哪一个是正确的。)