IPath pathEclipse = null; File file = status.getFile(); try { String canonicalPath = file.getCanonicalPath(); pathEclipse = new Path(canonicalPath); } catch (IOException e) {  }
IPath pathEclipse = baseResourceLocation.append(new Path(status.getFile().getAbsolutePath()).removeFirstSegments(segments));
    private void recursiveUpdateStatusSet(IResource resource) throws SVNException {        IWorkspace workspace = ResourcesPlugin.getWorkspace();        IWorkspaceRoot workspaceRoot = workspace.getRoot();        if (!(resource instanceof IProject)) {            // if the status of the resource parent is not known, we            // recursively update it instead             IContainer parent = resource.getParent();            if (parent != null) {                if (treeCacheRoot.getStatus(parent) == null) {                    recursiveUpdateStatusSet(parent);                    return;                }            }        }                        if (Policy.DEBUG_STATUS) {            System.out.println("[svn] getting status for : " + resource.getFullPath()); //$NON-NLS-1$           }                // don't do getRepository().getSVNClient() as we can ask the status of a file        // that is not associated with a known repository        // we don't need login & password so this is not a problem        ISVNStatus[] statuses = null;        try {            ISVNClientAdapter svnClientAdapterStatus = SVNProviderPlugin.getPlugin().createSVNClient();            statuses = svnClientAdapterStatus.getStatus(resource.getLocation().toFile(),true, true);        } catch (SVNClientException e1) {            throw SVNException.wrapException(e1);        }                for (int i = 0; i < statuses.length;i++) {            ISVNStatus status = statuses[i];            IPath pathEclipse = null;            File file = status.getFile();            try {                String canonicalPath = file.getCanonicalPath();                pathEclipse = new Path(canonicalPath);            } catch (IOException e) {                // should never occur ...            }                        IResource resourceStatus = null;                        // we can't test using file.isDirectory and file.isFile because both return false when            // the resource has been deleted            if (status.getNodeKind().equals(SVNNodeKind.DIR)) {                resourceStatus = workspaceRoot.getContainerForLocation(pathEclipse);            }            else {                resourceStatus = workspaceRoot.getFileForLocation(pathEclipse);            }                        if (resourceStatus != null) {            	treeCacheRoot.addStatus(resourceStatus, new LocalResourceStatus(status));            }        }    }