Modul plug-in org.eclipse.core.filesystem poskytuje generické rozhraní API umožňující interakci s libovolným systémem souborů. Toto API je podobné jako java.io.File s několika zásadními odlišnostmi:
V rozhraní API systému souborů je cesta ke každému určitému souboru reprezentována jako hierarchické java.net.URI. Schéma URI představuje druh systému souborů a komponenta cesty URI představuje umístění souboru ve stromu systému souborů. Jakékoli hierarchické URI tak představuje potenciální soubor nebo adresář v některém libovolném systému souborů.
Rozhraní API pro práci se soubory a systémy souborů se nachází v balíčku org.eclipse.core.filesystem. Centrálním typem rozhraní API je IFileStore Každá instance IFileStore představuje jeden soubor v systému souborů. Stejně jako u IResource existence instance IFileStore neznamená, že takový soubor existuje na disku. Pomocí instance IFileStore můžete vytvářet, odstraňovat, kopírovat, přesouvat nebo otevírat toky na souborech. Pro dané URI se můžete seznámit s instancí IFileStore pomocí statické metody EFS.getStore(URI)
Rozhraní IFileSystem lze použít k vyhledání věcí o systému souborů jako celku. Každá instance IFileSystem představuje jedno schéma URI, jako například "file:", "ftp:" atd. Prostřednictvím tohoto typu můžete pokládat otázky, jako například které atributy souboru jsou podporovány nebo zda systém souborů rozlišuje malá a velká písmena. Dále můžete pomocí tohoto typu získat IFileStore pro dané URI.
Většina metod na IFileStore má parametr příznaku, který umožňuje přidávat další volby. Hodnoty příznaků najdete ve třídě EFS. Chcete-li například otevřít výstupní tok pro připojení k souboru, použijte:
IFileStore store = ...//nějaké uložení souboru store.openOutputStream(EFS.APPEND, null);
Pokud chcete výchozí chování pro metodu, použijte EFS.NONE.
Rozhraní IFileInfo představuje stav souboru v určitém časovém okamžiku. Zejména pak můžete zjistit, zda soubor existuje, zda se jedná o adresář, jaké jsou jeho atributy a podobně. Tyto informace lze upravit a následně nastavit zpět do souboru. Zde je například úsek kódu, který pro adresář nastavuje atribut Pouze pro čtení:
IFileStore store = ...//nějaké uložení souboru IFileInfo info = store.fetchInfo(); if (info.exists() && info.isDirectory()) { info.setAttribute(EFS.ATTRIBUTE_READ_ONLY, true); store.putInfo(info, EFS.SET_ATTRIBUTES, null); }
Tento styl rozhraní API vám umožňuje získat a změnit informace o souboru jediným voláním systému souborů. Ve výše uvedeném příkladu je uskutečněno pouze jedno volání systému souborů pro načtení informací, a poté můžete na objektu IFileInfo provést libovolný počet operací bez nutnosti dalšího načítání údajů z disku.
Třída EFS má statické metody továrny pro získávání instancí IFileStore a IFileSystem a také různé volby konstant a kódy chyb.