Search file in perforce by folder pattern

609 Views Asked by At

I have some Java classes in perforce in different folders for a project. (There are more than one project)

It is possible to search for a file in perforce and get full path of it by just specifying file name and project folder? I mean something like this

Example of folders:

//depot/projects/<concrete_proj>/src/java/main/server/services/SomeClass.java
//depot/projects/<concrete_proj>/src/java/main/entities/OtherClass.java
//depot/projects/<concrete_proj>/src/java/main/common/controllers/Controller.java

where I believe there is a class that I need:

1.//depot/projects/<concrete_project>/[email protected]

and also situations like this (adding a folder pattern)

2.//depot/projects/<concrete_project>/...@[email protected]

First and second steps above are my assumptions. I tried to find something in documentation, but found nothing about this.

1

There are 1 best solutions below

1
On

The following code snippet shows how to use files command with P4Java:

IServer server = ServerFactory.getServer("p4java://repo:1666");
server.setUserName("user");
server.connect();

Map<String, Object>[] result = server.execMapCmd(CmdSpec.FILES.name(), new String[] { "//depot/projects/concrete_project/.../SomeClass.java" }, null);

for (Map<String, Object> entry : result) {
    System.out.println(map.get("depotFile"));
}

Valid examples of search strings that cover your use-cases:

"//depot/projects/concrete_project/.../Some*.java"
"//depot/projects/concrete_project/.../S*Class.java"
"//depot/projects/concrete_project/.../server/.../SomeClass.java"
"//depot/projects/concrete_project/.../serv*/.../Some*.java"