終于找到直接可以用的了
- path = FileLocator.toFileURL(
- Platform.getBundle(IAppConstants.APPLICATION_ID)
- .getEntry("")).getPath().toString();
RCP 文件路徑問(wèn)題
String path =FileLocator.toFileURL(Platform.getBundle("工程名").getEntry("")).getPath
得到eclipse rcp plugin 內(nèi)目錄文件絕對(duì)路徑的方法
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("請(qǐng)檢查文件的路徑",new NullPointerException());
// get path URL
urlentry = bundle.getEntry(entry);
if (urlentry==null)
throw new DataException("請(qǐng)檢查文件的路徑",new NullPointerException());
strEntry = FileLocator.toFileURL(urlentry).getPath();
} catch (IOException e1) {
throw new DataException("請(qǐng)檢查文件的路徑", e1);
}
return strEntry;
}
public static String getPluginPath(){
return Activator.getDefault().getStateLocation().makeAbsolute().toFile().getAbsolutePath();
}
}
另外,獲取插件/rcp 的workspace的路徑:
Platform.getInstanceLocation().getURL().getPath()
從插件/RCP中取得文件路徑的方法
最近社區(qū)里問(wèn)這個(gè)問(wèn)題的人特別多,所以在這里將自己用到的幾個(gè)方法寫(xiě)出來(lái)。假如以后還有其他的方法,會(huì)進(jìn)行更新。
從插件中獲得絕對(duì)路徑:
AaaaPlugin.getDefault().getStateLocation().makeAbsolute().toFile().getAbsolutePath());
通過(guò)文件得到Project:
IProject project = ((IFile)o).getProject();
通過(guò)文件得到全路徑:
String path = ((IFile)o).getLocation().makeAbsolute().toFile().getAbsolutePath();
得到整個(gè)Workspace的根:
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
從根來(lái)查找資源:
IResource resource = root.findMember(new Path(containerName));
從Bundle來(lái)查找資源:
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();
從編輯器來(lái)獲得編輯文件:
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 閱讀(1529)
評(píng)論(0) 編輯 收藏 所屬分類:
Eclipse的相關(guān)