You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用C#版P4API仅通过文件路径检查文件是否被追踪?

用P4API检查本地文件是否被Perforce追踪

你当前代码的问题在于用了DepotPath,但你只有本地文件的完整路径,应该改用LocalPath来创建FileSpec。以下是修正后的实现:

// 用本地路径创建FileSpec
FileSpec fs = new FileSpec(new LocalPath(filePath), VersionSpec.Head);
IList<FileSpec> lfs = new List<FileSpec>();
lfs.Add(fs);

Options options = new Options();
var fileResults = _repository.GetFiles(lfs, options);

// 判断文件是否被追踪
bool isTracked = false;
foreach (var result in fileResults)
{
    // 检查文件是否存在于仓库中(未被追踪的文件会返回FileError)
    if (result.FileError == null && result.DepotFile != null)
    {
        isTracked = true;
        break;
    }
}

关键说明:

  • LocalPath用于映射本地文件系统路径,P4API会自动关联当前客户端的工作区配置,转换为仓库路径进行查询。
  • 通过检查返回结果的FileError和DepotFile字段,确认文件是否已被Perforce追踪:如果FileError为空且DepotFile有值,说明文件在仓库中存在(已被追踪)。
  • 如果文件未被添加到Perforce,GetFiles会返回带有FileError的结果(比如FileNotFound)。

内容的提问来源于stack exchange,提问作者Jonas Knohl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 15:37:35