如何在 Eclipse 中验证资源是否为 .c、.h、.s 类型?
How to verify if a resource is of type .c, .h, .s in Eclipse?
我正在开发一个 TableViewer
,其中填充了基于所选资源的数据。对于文件,我正在这样检查收到的项目:
if( item instanceof IFile ) {
something;
}
我看到 .c、.h、.s 文件不是 IFile
类型,而是 ICElement
类型。当我检查这个时,我看到文件夹也是这种类型的。
因为我只需要来自所选文件的信息,所以出现以下问题:
所有资源的主要class来源是什么?我想确保如果选择任何类型的文件,我的查看器都会被填充。
What is the main class from which all the resources are derived ?
我会说IResource
(IFile、IFolder 和IProject 是子接口)
如果您想根据扩展名处理文件,只需解析扩展名:)
您从当前选择中获得的对象通常不是基础资源的实例,但可以 'adapted' 到资源,使用:
IAdapterManager adapter = Platform.getAdapterManager();
IResource resource = (IResource)adapter.getAdapter(selectedObject, IResource.class);
if (resource instanceof IFile)
{
....
}
我正在开发一个 TableViewer
,其中填充了基于所选资源的数据。对于文件,我正在这样检查收到的项目:
if( item instanceof IFile ) {
something;
}
我看到 .c、.h、.s 文件不是 IFile
类型,而是 ICElement
类型。当我检查这个时,我看到文件夹也是这种类型的。
因为我只需要来自所选文件的信息,所以出现以下问题:
所有资源的主要class来源是什么?我想确保如果选择任何类型的文件,我的查看器都会被填充。
What is the main class from which all the resources are derived ?
我会说IResource
(IFile、IFolder 和IProject 是子接口)
如果您想根据扩展名处理文件,只需解析扩展名:)
您从当前选择中获得的对象通常不是基础资源的实例,但可以 'adapted' 到资源,使用:
IAdapterManager adapter = Platform.getAdapterManager();
IResource resource = (IResource)adapter.getAdapter(selectedObject, IResource.class);
if (resource instanceof IFile)
{
....
}