posts - 1,  comments - 25,  trackbacks - 0
          終于找到直接可以用的了 
          Java代碼 
          1. path = FileLocator.toFileURL(  
          2.         Platform.getBundle(IAppConstants.APPLICATION_ID)  
          3.                 .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 閱讀(1536) 評論(0)  編輯  收藏 所屬分類: Eclipse的相關
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 元氏县| 大名县| 翼城县| 饶平县| 色达县| 漳浦县| 泗水县| 沙田区| 平利县| 贡山| 察隅县| 仲巴县| 剑河县| 宾阳县| 金山区| 鄂伦春自治旗| 邢台市| 碌曲县| 宜都市| 杭锦后旗| 托克逊县| 武陟县| 麻阳| 宿迁市| 富民县| 淄博市| 巴中市| 扎赉特旗| 全州县| 水城县| 闻喜县| 乐山市| 红桥区| 建瓯市| 上蔡县| 深圳市| 韶山市| 马尔康县| 黔西县| 花垣县| 郴州市|