Eclipse文件系统
如果只是在Eclipse里使用本地硬盘,那Eclipse文件系统就似乎用处不大。而现实情况并非如此。比如可能通过CVS提交代码,可能通过FTP上传文件,等等。其本质都是文件操作。Eclipse文件系统试图将这些文件操作的不同之处统一起来。更多观点参见:
http://wiki.eclipse.org/index.php/EFS
自Eclipse3.2,Eclipse就内置了本地文件系统。本地文件系统也许是考虑最周全的Eclipse文件系统。Eclipse本地文件系统为弥补Java文件系统的不足之处,还针对各个平台,加入了一些本地C代码的支持。这些源码都是可见的。可以参见org.eclipse.core.filesystem的实现。
org.eclipse.core.filesystem提供了Eclipse文件系统的扩展点,本地文件系统扩展,和空文件系统扩展。本地文件系统扩展最完备,但不利于初学者入门;空文件系统好像没什么用,不过其实现非常简单,比较容易学习。
有点扯远了。回到Eclipse文件系统,像任何一个Eclipse扩展点一样,都有三个问题需要关注:
- 是什么?
- 如何用?
- 如何扩展(或实现)?
之前涉及了Eclipse文件系统是什么以及如何实现的问题。那Eclipse文件系统如何使用呢?下面文档回答了这个问题:
http://www.eclipsezone.com/eclipse/forums/t83786.html
还有一些代码片段可以参考:
http://wiki.eclipse.org/EFS_for_Platform_Committers
专门介绍如何实现自己的Eclipse文件系统的一篇:
http://www.eclipsezone.com/articles/efs/
文中实现了一个Zip文件的文件系统。Zip文件里的那些Entry之类的,和目录、文件的概念可以一一地对上。这个例子里的代码傻傻的,非常好的例子代码,看得人恨不得自己写代码换掉。很可能这就是作者的目的。
Eclipse文件系统的本地文件系统扩展,实现得非常完备,满足Eclipse的需求绰绰有余。它注定会前程远大。我隐约可以看到一些应用,但牵涉的东西比较多,我没有时间完整地写下来;大家还是自己看看吧。