2013-05-07 19 views
1

到fetchCompleteState是否有fetchCompleteState上versionableManager获取的历史文件中的数据的任何等同方法?我在与检索以前的变更列表中添加文件的文件名的麻烦。下面是例子:等效方法在RTC的Java API平原

Changelist 1:  
add file: src/newFile.java 

Changelist 2:  
modify file: src/newFile.java 

Changelist 3:  
rename file: src/newFile.java -> src/newFile_rename.java 

而现在,当我试图获取文件名或变更表1文件的文件路径,使用下面的代码:

// change is IChange, versionableManager is IVersionableManager  
// method getFilePath retrieve file path using ancestors  
file = versionableManager.fetchCompleteState(change.afterState(), monitor);  
if (file instanceof IFolder) {   
    IFolder folder = (IFolder) file;   
    relativePath = getFilePath(file, workspaceConnection.configuration(changeSet.getComponent()), monitor); 
    fileName = folder.getName();  
} else { 
    relativePath = getFilePath(file, workspaceConnection.configuration(changeSet.getComponent()), monitor);  
    fileName = ((FileItem) file).getName();  
} 

我得到的名称和路径改名文件。如何获得它的老名称和路径?

回答

1

好找到了解决办法:

IFileItemHandle fileItemHandle = (IFileItemHandle) IFileItem.ITEM_TYPE.createItemHandle(change.afterState().getItemId(), change.afterState().getStateId()); 
file = versionableManager.fetchCompleteState(fileItemHandle, monitor); 

if (file instanceof IFolder) {   
    IFolder folder = (IFolder) file;   
    relativePath = getFilePath(file, workspaceConnection.configuration(changeSet.getComponent()), monitor); 
    fileName = folder.getName();  
} else { 
    relativePath = getFilePath(file, workspaceConnection.configuration(changeSet.getComponent()), monitor);  
    fileName = ((FileItem) file).getName();  
} 

但仍然有解决文件路径isses。不管怎么说,这是一个很大的进步。