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 阅读(1500) 评论(0)  编辑  收藏 所属分类: Eclipse的相关

只有注册用户登录后才能发表评论。


网站导航:
 
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿(3)

随笔档案

文章分类

文章档案

相册

搜索

  •  

最新评论