Většina rozhraní API v hierarchii IResource pracuje stejným způsobem bez ohledu na druh systému souborů, ve kterém jsou prostředky uloženy. Existují ovšem i některá rozhraní API, kterým je třeba se při práci s prostředky v jiných systémech souborů vyhnout, protože tato rozhraní jsou vytvořena pouze pro práci s lokálním systémem souborů.
Konkrétně metoda IResource.getLocation má vracet cestu k prostředku v lokálním systému souborů. Pokud se prostředek nachází v nějakém jiném systému souborů, nelze tuto metodu použít a vrácená hodnota bude null. Je tedy lepší namísto toho použít metodu getLocationURI, která funguje bez ohledu na druh systému souborů, ve kterém jsou prostředky uloženy.
Podobně je vhodné vyhnout se metodám IProjectDescription getLocation a setLocation, protože tyto metody fungují pouze v lokálním systému souborů. Namísto nich se by měly použít metody s umístěním na bázi URI.
Předpokládejme, že pracujete s prostředky, které nejsou v lokálním systému souborů, ale ve skutečnosti potřebujete lokální soubor. Můžete například používat knihovnu, která závisí na java.io.File. V takovém případě můžete pomocí metody IFileStore.toLocalFile získat lokální kopii souboru. Všimněte si, že v důsledku toho bude lokálně uložen do mezipaměti pouze jeden soubor nebo adresář, nikoli tedy celý adresářový strom. Následuje příklad použití lokálního ukládání do mezipaměti pro otevření souboru zip v IFileStore:
IFileStore store = ...;//nějaké uložení souboru java.io.File file = store.toLocalFile(EFS.NONE, null); if (file == null) { //nejsme lokálním úložištěm souboru, proto musíme uložit do mezipaměti lokální kopii file = store.toLocalFile(EFS.CACHE, null); } java.util.zip.ZipFile zip = new java.util.ZipFile(file);
Pomocí propojených prostředků můžete vytvářet projekty, které sdružují prostředky z více systémů souborů. Jednoduše použijte metodu IFile.createLink(URI, int, IProgressMonitor) nebo IFolder.createLink(URI, int, IProgressMonitor) pro vytvoření prostředku ve stávajícím projektu, jehož obsah je uložen na jiném místě v libovolném systému souborů. Můžete dokonce vytvářet odkazy pod jinými propojenými prostředky pro vytvoření libovolných stromů prostředků sdružující prostředky z řady různých systémů souborů. Následuje jednoduchý příklad, který vytváří sourozenecký propojený soubor sdílející stejné umístění systému souborů jako zdroj:
IFile source = ...;//nějaký zdrojový soubor IFile link = source.getParent().getFile(new Path(source.getName() + ".link")); link.createLink(source.getLocationURI(), IResource.NONE, null);