Większość interfejsów API w hierarchii IResource działa w ten sam sposób, niezależnie od tego, w jakim rodzaju systemu plików zapisane są zasoby. Istnieją jednak interfejsy API, których należy unikać podczas pracy z zasobami w innych systemach plików, ponieważ służą one tylko do pracy w lokalnym systemie plików.
Na przykład metoda IResource.getLocation zwraca ścieżkę w lokalnym systemie plików dla danego zasobu. Jeśli zasób znajduje się w innym systemie plików, metody nie można stosować i zwraca ona wartość null. Lepiej więc zamiast niej stosować metodę getLocationURI, która działa niezależnie od tego, w jakim rodzaju systemu plików zapisany jest zasób.
Z podobnego powodu należy unikać stosowania metod IProjectDescription getLocation i setLocation, ponieważ działają one tylko w lokalnym systemie plików. Zamiast nich należy użyć metod opartych na URI.
Załóżmy, że pracujemy z zasobami zapisanymi w innym systemie plików niż lokalny, ale zdecydowanie potrzebujemy pliku lokalnego. Przykład: stosowana jest biblioteka zależna od java.io.File. W tym przypadku można użyć metody IFileStore.toLocalFile, aby uzyskać lokalną kopię pliku. Należy zauważyć, że spowoduje to utworzenie lokalnego bufora tylko jednego pliku lub katalogu, a nie całego drzewa katalogów. Poniżej przedstawiono przykład wykorzystania bufora lokalnego do otwarcia plik zip przy użyciu metody IFileStore:
IFileStore store = ...;//jakaś składnica plików java.io.File file = store.toLocalFile(EFS.NONE, null); if (file == null) { //nie używamy lokalnej składnicy plików, więc musimy utworzyć kopię lokalną file = store.toLocalFile(EFS.CACHE, null); } java.util.zip.ZipFile zip = new java.util.ZipFile(file);
Aby tworzyć projekty, które łączą zasoby z różnych systemów plików, można skorzystać z zasobów dowiązywanych. Wystarczy użyć metody IFile.createLink(URI, int, IProgressMonitor) lub IFolder.createLink(URI, int, IProgressMonitor), aby utworzyć zasób w istniejącym projekcie, którego treść jest zapisana w innym miejscu w jakimś systemie plików. Można nawet tworzyć dowiązania pod innymi dowiązanymi zasobami, co umożliwia tworzenie drzew zasobów łączących zasoby z różnych systemów plików. Poniżej przedstawiono prosty przykład tworzący siostrzany plik dowiązany, współużytkujący to samo miejsce w systemie plików, co plik źródłowy:
IFile source = ...;//jakiś plik źródłowy IFile link = source.getParent().getFile(new Path(source.getName() + ".link")); link.createLink(source.getLocationURI(), IResource.NONE, null);