我正在搜索位于更改集的.txt文件。 然后我需要在我的电脑上本地创建这个文件的完整路径目录。
例如,如果有一个名为“test.txt”的文件位于: PROJECT1 - > Folder1中 - > FOLDER2 - > test.txt的
直到现在我已设法搜索此文件。 现在我需要获取完整目录并在我的电脑上创建类似的目录: 在我的电脑上的结果: 文件夹1 - > 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;
}
我搜索过&amp;发布在论坛上,我发现的大部分内容都是我可以使用: configuration.determineAncestorsInHistory
但是为了获得IConfiguration,我需要在我的情况下无效的workspaceConnection。
感谢。
我使用RTC:4 赢:XP
提前致谢。
答案 0 :(得分:1)
文件/文件夹的标识与其名称/路径无关。这允许跨重命名/移动跟踪文件。根据对该文件(或包含文件夹)所做更改的历史记录,文件的名称/路径可能会有所不同。
这意味着如果您没有指向您关注的历史记录中特定点的工作区(或基线),那么您无法确定路径实际是什么。 IConfiguration.determineAncestorsInHistory
实际上是获取路径的唯一途径。
在服务器深处埋藏了一种算法,可以猜测文件的“热门”路径,但这不会在任何地方公开。