1

我需要构建一些与 P4V 中的树视图非常相似的树视图,其中列出了待处理的更改列表;

我可以将挂起的更改列表添加到树视图中,如果我使用可以添加子节点GetFileName(),但是我想要文件LocalPath,如果我尝试它,我得到"Object reference not set to an instance of object".

IList<Changelist> lista;
Options opcoes = new Options(ChangesCmdFlags.FullDescription, con.Cliente.Name, 100,     ChangeListStatus.Pending, con.Usuario);

lista = new List<Changelist>();
lista = con.Repositorio.GetChangelists(opcoes);

for (int i = 0; i < lista.Count; i++ )
{
   Changelist change = new Changelist();
   TreeNode node = new TreeNode();

   change = lista[i];
   change.initialize(con.conexao);

   node = tre.Nodes.Add(change.Id.ToString());
   FileSpec arquivoSpec = new FileSpec(new LocalPath(PathSpec.UnescapePath("")), Revision.Have);



   for (int arquivoAtual = 0; arquivoAtual < change.Files.Count; arquivoAtual++)
   {
       node.Nodes.Add(change.Files[arquivoAtual].LocalPath.Path);
   }

}

任何帮助将不胜感激。

4

1 回答 1

0

您需要使用 Repository.GetFileMetaData(),将 GetFileMetaDataOptions() 的“byChangelist”设置为待处理的更改,并将“GetFileMetaDataCmdFlag”设置为“Opened”和“LocalPath”。这是相关文档的链接:

http://www.perforce.com/perforce/doc.current/manuals/p4api.net/p4api.net_reference/html/M_Perforce_P4_Repository_GetFileMetaData_1.htm

http://www.perforce.com/perforce/doc.current/manuals/p4api.net/p4api.net_reference/html/M_Perforce_P4_GetFileMetaDataCmdOptions__ctor.htm

我怀疑你调用的方法调用了'p4 describe',它没有获取本地路径。GetFileMetaData() 调用“p4 fstat”。

于 2014-01-15T05:47:37.290 回答