C# 以编程方式获取特定项目中特定文件夹的挂起更改?

C# 以编程方式获取特定项目中特定文件夹的挂起更改?,c#,C#,我使用TFS已经有一段时间了,因为在本地创建和放置特定文件和文件夹后,我需要将它们上载/签入到TFServer上的各个位置。我正在映射工作区和所有东西,我从PendingChanges得到了一系列更改,但不是我想要的,也不是我想要的。这个问题真的很烦人,因为对于每个签入过程,我只想处理已经映射到的特定位置的特定文件夹或文件。我将把部分代码粘贴到这里以供参考 using (TfsTeamProjectCollection collection = new TfsTeamProjectCollect

我使用TFS已经有一段时间了,因为在本地创建和放置特定文件和文件夹后,我需要将它们上载/签入到TFServer上的各个位置。我正在映射工作区和所有东西,我从PendingChanges得到了一系列更改,但不是我想要的,也不是我想要的。这个问题真的很烦人,因为对于每个签入过程,我只想处理已经映射到的特定位置的特定文件夹或文件。我将把部分代码粘贴到这里以供参考

using (TfsTeamProjectCollection collection = new TfsTeamProjectCollection(serverUri, _cred))
        {
            VersionControlServer versionControl = (VersionControlServer)collection.GetService(typeof(VersionControlServer));


            string machineName = Environment.MachineName;
            string currentUserName = Environment.UserName;

            Workspace myWorkspace = versionControl.GetWorkspace(machineName, currentUserName);
            // tried this from Stack but didn't work.
            //PendingChange[] changes = myWorkspace.GetPendingChanges().Where(x => x.LocalOrServerFolder.Contains(localPath)).ToArray();

            PendingChange[] changes = myWorkspace.GetPendingChanges();
            if (changes.Length != 0)
            {
                foreach (PendingChange c in changes)
                {
                    rt.Text += "  path: " + c.LocalItem + ", change: " + PendingChange.GetLocalizedStringForChangeType(c.ChangeType) + "\n";
                }
            }
            else
            {
                rt.Text += "This didn't work.";
            }
}


基本上,我想在我的TFS类中抛出一个文件夹或文件,让它检查文件或文件夹是否是最新的或在TFS上是否存在,并相应地采取行动。我希望我已经详细描述了这个问题

我认为我的答案不会完全回答您的问题,但如果您想获得特定文件夹的待定更改,您可以使用类似的方法

PendingChange[] changes = myWorkspace.GetPendingChanges(localPath, RecursionType.Full, false);