本文来自《自己动手写开发工具——基于Eclipse的工具开发》
http://book.csdn.net/bookfiles/550/10055018421.shtml
说到Eclipse中与资源相关的最重要的概念就是:工作空间、项目、文件夹和文件。工作空间的资源组织成树结构,项目位于顶部,而文件夹和文件在下面。特殊资源、工作空间根目录资源充当资源树的根目录。工作空间可以有任意数目的项目,每个项目都可以存储在磁盘上的不同位置。工作空间负责管理用户资源,组织一个或多个顶级项目。每个项目对应于工作空间目录中的子目录。每个项目都可以包含文件和文件夹。图3.11是项目中不同资源的示意图。
图3.11 项目中的不同资源
相信上图我们大部分都能看懂,需要注意的是Java工程中的包、源文件夹、普通文件夹在Eclipse资源这一个层次看起来都属于文件夹,它们的不同其实是由JDT来标识和区分的。
工作空间下可能有一个 .metadata目录,它是一个特殊的文件夹,其中存储的是工作空间相关的配置文件,我们不能使用一般文件系统 API 来编辑或处理这些文件。与此相似的就是每个项目目录下的 .project。
工作空间、项目、文件夹、文件对应的类型接口分别为IWorkspace、IProject、IFolder、IFile。资源相关的接口都继承了IResource接口,由于工作空间并不只是资源的管理者,因此IWorkspace并没有继承IResource接口,为了将工作空间作为资源的管理者这一功能体现出来,抽象出了IWorkspaceRoot的接口(即工作空间根目录),通过IWorkspace的getRoot就可以得到对应的工作空间根目录。由于工作空间根目录、项目、文件夹都是可以容纳其他资源的,因此为它们抽取了一个基类接口IContainer。图3.12 为Eclipse中资源相关类的继承结构图。