终于找到直接可以用的了
- path = FileLocator.toFileURL(
- Platform.getBundle(IAppConstants.APPLICATION_ID)
- .getEntry("")).getPath().toString();
RCP 文件路径问题
String path =FileLocator.toFileURL(Platform.getBundle("工程名").getEntry("")).getPath
得到eclipse rcp plugin 内目录文件绝对路径的方法
import java.io.IOException;
import java.net.URL;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Platform;
import org.osgi.framework.Bundle;
import com.work.base.exception.DataException;
import com.work.view.Activator;
public class BundlePathUtil {
public static String getRealPath(String bundleID, String entry)
throws DataException {
URL urlentry;
String strEntry;
try {
Bundle bundle = Platform.getBundle(bundleID);
if (bundle==null)
throw new DataException("请检查文件的路径",new NullPointerException());
// get path URL
urlentry = bundle.getEntry(entry);
if (urlentry==null)
throw new DataException("请检查文件的路径",new NullPointerException());
strEntry = FileLocator.toFileURL(urlentry).getPath();
} catch (IOException e1) {
throw new DataException("请检查文件的路径", e1);
}
return strEntry;
}
public static String getPluginPath(){
return Activator.getDefault().getStateLocation().makeAbsolute().toFile().getAbsolutePath();
}
}
另外,获取插件/rcp 的workspace的路径:
Platform.getInstanceLocation().getURL().getPath()
从插件/RCP中取得文件路径的方法
最近社区里问这个问题的人特别多,所以在这里将自己用到的几个方法写出来。假如以后还有其他的方法,会进行更新。
从插件中获得绝对路径:
AaaaPlugin.getDefault().getStateLocation().makeAbsolute().toFile().getAbsolutePath());
通过文件得到Project:
IProject project = ((IFile)o).getProject();
通过文件得到全路径:
String path = ((IFile)o).getLocation().makeAbsolute().toFile().getAbsolutePath();
得到整个Workspace的根:
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
从根来查找资源:
IResource resource = root.findMember(new Path(containerName));
从Bundle来查找资源:
Bundle bundle = Platform.getBundle(pluginId);
URL fullPathString = BundleUtility.find(bundle, filePath);
得到Appliaction workspace:
Platform.asLocalURL(PRODUCT_BUNDLE.getEntry("")).getPath()).getAbsolutePath();
得到runtimeworkspace:
Platform.getInstanceLocation().getURL().getPath();
从编辑器来获得编辑文件:
IEditorPart editor = ((DefaultEditDomain)(parent.getViewer().getEditDomain())).getEditorPart();
IEditorInput input = editor.getEditorInput();
if(input instanceof IFileEditorInput){
IFile file = ((IFileEditorInput)input).getFile();
}
posted on 2010-09-24 10:59
Daniel 阅读(1511)
评论(0) 编辑 收藏 所属分类:
Eclipse的相关