如何在 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 是子接口)

如果您想根据扩展名处理文件,只需解析扩展名:)

IResource doc

您从当前选择中获得的对象通常不是基础资源的实例,但可以 'adapted' 到资源,使用:

IAdapterManager adapter = Platform.getAdapterManager();

IResource resource = (IResource)adapter.getAdapter(selectedObject, IResource.class);

if (resource instanceof IFile)
 {
   ....
 }