The Eclipse File System (EFS) is an abstract file system API. It is used in the Eclipse platform to abstract away implementation details about what file system is used to store data in the workspace. This page is a repository of information for plug-in developers who are writing their own EFS implementations.
There are some basic sample implementations of EFS available:
- The best example is the local file system implementation found in the org.eclipse.core.filesystem plugin. See the classes in the org.eclipse.core.internal.filesystem.local package for more details. This EFS implementation is product quality, and currently ships as part of the Eclipse platform (as of the 3.2 release).
- The org.eclipse.ui.examples.filesystem plug-in contains two sample EFS implementations. The first is an EFS implementation that treats a single zip file as the backing file system. The second is an entirely in-memory file system that is useful in automated tests. This plugin is found in the dev.eclipse.org/cvsroot/eclipse CVS repository, at the path www/eclipse/platform-ui/plugins/org.eclipse.ui.examples.filesystem.
- The org.eclipse.core.filesystem.ftp plug-in contains a partial implementation of EFS on top of File Transfer Protocol (FTP). This FTP implementation is not currently functional, but if you want to help out patches are always welcome! This plug-in is found in the dev.eclipse.org/cvsroot/org.eclipse repository, at the path /platform-core-home/plugins/org.eclipse.core.filesystem.ftp. This plug-in depends on the "team extras" FTP plug-in, found in the same repository at the path /platform-vcm-home/plugins/target/org.eclipse.ftp.
Are you working on an EFS implementation that you would like the community to know about? If so, add it to the list below. You may find others in the community who are working on an implementation for the same kind of file system and may be able to pool resources.