2

我想在不同步的情况下读取 P4 库上指定文件夹路径内的文件夹和文件结构。可能吗?

4

2 回答 2

5

要获取指定仓库路径的子文件夹,应使用此代码

p4.run("dirs", path+'*')

结果将是单项字典的列表

[{'dir': '//Depot/path/dirname1'}, {'dir': '//Depot/path/dirname2'}]

为了获取包含在指定库路径中的所有文件,应该使用:

p4.run("files", path+'*')

结果将是每个文件的字典列表:

[{'rev': '1', 'time': '1465999632', 'action': 'add', 'type': 'text', 'depotFile': '//Depot/path/dirname1/filename.txt', 'change': '999999'}]

另请注意,指定路径必须以斜杠 / 结尾

感谢@SilentMonk @BryanPendleton 给我提示

于 2016-06-16T12:26:33.233 回答
0

请注意,如果您打算填充整个目录树,则使用 Dirs 和 Files 以递归方式遍历目录树是低效的。

如果您需要目录下所有文件的文件信息,包括其子文件,只需发出“文件”命令以包含整个树(即路径/...而不是路径/*),速度要快几个数量级。

我怀疑这是因为 P4 服务器在内部没有目录的概念。P4 中文件的“目录”只是文件路径中最后一个以路径分隔的标记。因此,它必须做额外的工作才能将其文件集分割成一个特定于目录的列表。

于 2019-06-12T17:19:12.683 回答