首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >P4.NET -如何列出用户的工作区?

P4.NET -如何列出用户的工作区?
EN

Stack Overflow用户
提问于 2011-03-02 19:03:00
回答 3查看 2.4K关注 0票数 3

我不是P4.NET插件方面的专家,但我想在组合框中为用户显示现有的工作区,这样我就可以将p4.Client设置为选定的工作区。

代码语言:javascript
复制
using (var p4 = new P4Connection())
            {
                p4.Connect();
                ???               
            }

如何获取现有工作区的列表?我认为实现这一点的命令行应该是

代码语言:javascript
复制
p4 clients -m 100 -u username
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-04 17:47:52

好吧,我别无选择,只能回答我自己的问题,因为代码太多了,不能作为注释插入到jhwist答案中。对不起,jhwist。我别无他法。

@appinger,我希望这个答案对你有帮助。我花了几个小时才弄明白这个api的工作原理。:)

cmbBoxPerforceWorkspaceLocation只是你的工作区的组合框。顺便说一下,我正在使用Winforms。

我需要从windows用户名中提取一个短名称。Windows用户名通常以xxxx\用户名开头。在我的代码中,我从长名称中提取用户名,并将其保存为短名称。如果您的网络设置不同,则此代码可能需要进行相应的更改。

让我知道它是否对你有效。

代码语言:javascript
复制
using (var p4 = new P4Connection())
            {
                p4.Connect();
                var longName = WindowsIdentity.GetCurrent().Name;
                var shortname = longName.Substring(longName.IndexOf("\\") + 1);
                var records = p4.Run("clients", "-u", shortname);

                cmbBoxPerforceWorkspaceLocation.Items.Clear();

                foreach (P4Record record in records.Records)
                {
                    cmbBoxPerforceWorkspaceLocation.Items.Add(record["client"]);
                }
            }
票数 2
EN

Stack Overflow用户

发布于 2011-03-02 20:53:27

如果P4.Net的行为类似于官方的Perforce API,那么您可能希望运行:

代码语言:javascript
复制
p4.Run("clients", "-m 100 -u username")

或者类似的。灵感来自P4Ruby文档。

票数 4
EN

Stack Overflow用户

发布于 2011-03-17 07:32:45

P4.Net被设计成类似于脚本API,而脚本API又是围绕命令行界面设计的。它绝对没有一个直观的面向对象的界面……这在一开始是令人不快的。但是,如果你从命令行开始(特别是-ztag标志),并把你的应用需要的所有数据/动作拼凑在一起,你会发现使用P4.Net相当容易。由于它类似于所有的脚本API,如果您愿意,您会发现选择Python或Ruby是很自然的:-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5166546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档