首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用c#显示树视图中的绝对仓库

用c#显示树视图中的绝对仓库
EN

Stack Overflow用户
提问于 2011-03-09 10:57:23
回答 1查看 1.4K关注 0票数 3

我不是P4.NET的专家,我想在treeview (窗口应用程序c#)中展示perforce的仓库.

* "p4 dirs“以获取所有仓库=> p4 dirs "//*”为例,这可能会给depot1 depot2 ..etc带来

代码语言:javascript
复制
P4Connection p4 = new P4Connection();
p4.Connect();
P4RecordSet tab1 = p4.Run("dirs","//depot/*"); // to get folders in depot
foreach (P4Record a in tab1 )
{
  richTextBox1.Text += (a["dir"]) + "\n";// show the results in richTextBox

}

*要获取目录中的文件列表,请运行fstat=> p4 fstat "//depot1/*“

代码语言:javascript
复制
P4RecordSet tab2 = p4.Run("fstat","//depot/your_folder/*"); // to get files existing in your_folder
foreach (P4Record b in tab2 )
{
  richTextBox1.Text += (b["depotFile"]) + "\n";// show the results in richTextBox

}

现在,如何使用这段代码构建treeview?任何帮助都是非常欢迎的。

EN

回答 1

Stack Overflow用户

发布于 2011-03-15 05:47:11

下面的代码只支持硬编码的仓库,但是使用“depot”命令查看Perforce服务器上的所有仓库并不难。

代码语言:javascript
复制
public void PopulateTreeview()
{
    TreeNode depotNode = new TreeNode("//depot");

    P4Connection p4 = new P4Connection();
    p4.Connect();

    ProcessFolder(p4, "//depot", depotNode);

    treeView.Nodes.Add(depotNode);
}

public void ProcessFolder(P4Connection p4, string folderPath, TreeNode node)
{
    P4RecordSet folders = p4.Run("dirs", folderPath + "/*");
    foreach(P4Record folder in folders)
    {
        string newFolderPath = folder["dir"];
        string[] splitFolderPath = newFolderPath.Split('/');
        string folderName = splitFolderPath[splitFolderPath.Length - 1];

        TreeNode folderNode = new TreeNode(folderName);
        ProcessFolder(p4, newFolderPath, folderNode);

        node.Nodes.Add(folderNode);
    }

    P4RecordSet files = p4.Run("fstat", folderPath + "/*");
    foreach(P4Record file in files)
    {
        string[] splitFilePath = file["depotFile"].Split('/');
        string fileName = splitFilePath[splitFilePath.Length - 1];

        TreeNode fileNode = new TreeNode(fileName);
        node.Nodes.Add(fileNode);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5244750

复制
相关文章

相似问题

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