1

我正在搜索位于变更集的 .txt 文件。然后我需要在我的电脑上本地创建这个文件的完整路径目录。

例如,如果有一个名为“test.txt”的文件位于:Project1-->Folder1-->Folder2-->test.txt

直到现在我已经设法搜索到这个文件。现在我需要获取完整目录并在我的电脑上创建类似的目录:我的电脑上的结果:Folder1-->Folder2-->test.txt

这就是我在变更集中搜索文件并检索它的方法:

public IFileItem getTextFileFile(IChangeSet changeSet, ITeamRepository repository) throws TeamRepositoryException{
    IVersionableManager vm = SCMPlatform.getWorkspaceManager(repository).versionableManager();
    List changes = changeSet.changes();
    IFileItem toReturn = null;
    for(int i=0;i<changes.size();i++) {="" <br="">             Change change = (Change) changes.get(i);
        IVersionableHandle after = change.afterState();
        if( after != null && after instanceof IFileItemHandle) {
            IFileItem fileItem = (IFileItem) vm.fetchCompleteState(after, null);
            if(fileItem.getName().contains(".txt")) {
                   toReturn = fileItem;
                   break;
            } else {
               continue;
            }
        }
    }
    if(toReturn == null){
        throw new TeamRepositoryException("Could not find the file");
    }
    return toReturn;
}

我在论坛上搜索并发布了大部分内容,我发现我可以使用:configuration.determineAncestorsInHistory

但是,为了获得 IConfiguration,我需要 workspaceConnection,这在我的情况下无效。

谢谢。

我使用 RTC:4 Win:XP

提前致谢。

4

1 回答 1

1

文件/文件夹具有独立于其名称/路径的标识。这允许跨重命名/移动跟踪文件。文件的名称/路径可能会有所不同,具体取决于对该文件(或包含文件夹)所做更改的历史记录。

这意味着,如果您没有指向您关心的特定历史点的工作区(或基线),那么您无法确定实际路径是什么。这IConfiguration.determineAncestorsInHistory确实是获得路径的唯一方法。

在服务器深处有一种算法可以猜测文件的“流行”路径,但这并没有在任何地方公开。

于 2013-05-14T20:47:26.127 回答