It's all about the answers!

Ask a question

Finding a file in a component using java api


K M (38325051) | asked Aug 05 '10, 8:08 a.m.
I can find a file that is at the root folder using the folliwng methods

IConfiguration iconfig = (IConfiguration) workspace.configuration(component);
IFolderHandle root = iconfig.rootFolderHandle(MONITOR);
IVersionableHandle filePathHandle = iconfig.resolvePath(root,fileName, MONITOR);

How do I find the file if it is not at the root folder level??

One answer



permanent link
K M (38325051) | answered Aug 05 '10, 10:14 a.m.
there should be a simpler way.......


public IVersionableHandle findfile(IFolderHandle root,IConfiguration iconfig,String fileName)
throws TeamRepositoryException {
String fileNamePath[] = {fileName};
IVersionableHandle filePathHandle = null;

// Check if file at this folder level
filePathHandle = iconfig.resolvePath(root,fileNamePath, MONITOR);
if (filePathHandle != null) {
return filePathHandle;
}

// Check this file sub folders
Map<String> childEntries = iconfig.childEntries(root,MONITOR);
for(Map.Entry<String> next : childEntries.entrySet()) {
IVersionableHandle nextVersionable = next.getValue();
if (nextVersionable instanceof IFolderHandle) {
filePathHandle = findfile((IFolderHandle) nextVersionable,iconfig,fileName);

if (filePathHandle != null) {
break;
}
}
}
return filePathHandle;
}

Your answer


Register or to post your answer.