Plugin'en org.eclipse.core.filesystem indeholder en generisk API til interaktion med et vilkårligt filsystem. Dette API svarer til java.io.File, bortset fra nogle få forskelle:
I filsystem-API'et repræsenteres stien for en given fil som en hierarkisk java.net.URI. URI-skemaet repræsenterer filsystemtypen, og URI-stikomponenten repræsenterer placeringen af filen i filsystemtræet. Derfor repræsenterer en given hierarkisk URI en potentiel fil eller et bibliotek i et vilkårligt filsystem.
API'et til arbejde med filer og filsystemer er placeret i pakken org.eclipse.core.filesystem. Den centrale API-type er IFileStore. Hver forekomst af IFileStore repræsenterer en enkelt fil i filsystemet. Som med IResource betyder eksistensen af en IFileStore ikke, at sådan en fil findes på disken. Du kan bruge en forekomst af IFileStore til at slette, kopiere, flytte eller anvende open streams for filer. For en given URI kan du få fat i en forekomst af IFileStore vha. den statiske metode EFS.getStore(URI).
Grænsefladen IFileSystem kan anvendes til at få oplysninger om filsystemet som helhed. Hver forekomst af IFileSystem repræsenterer et enkelt URI-skema, f.eks. "file:", "ftp:" osv. Du kan anvende denne type til at stille spørgsmål, f.eks. om hvilke filattributter der understøttes, eller om filsystemet skelner mellem store og små bogstaver. Du kan også bruge denne type til at hente en IFileStore for en given URI.
De fleste metoder for IFileStore har en flagparameter, der gør det muligt at levere yderligere parametre. Flagværdierne findes i klassen EFS. Hvis du f.eks. vil åbne en outputstrøm for at tilføje til en fil, skal du bruge:
IFileStore store = ...//fillagring store.openOutputStream(EFS.APPEND, null);
Hvis du vil bruge standardfunktionsmåden for en metode, skal du bruge EFS.NONE.
Grænsefladen IFileInfo repræsenterer tilstanden for en fil på et bestemt tidspunkt. Isæt kan du undersøge, om en fil findes, om det er et bibliotek, oplysninger om attributter osv. Oplysningerne kan ændres og sendes tilbage til filen. Nedenfor er et stykke, der angiver attributten Skrivebeskyttet for et bibliotek:
IFileStore store = ...//fillagring IFileInfo info = store.fetchInfo(); if (info.exists() && info.isDirectory()) { info.setAttribute(EFS.ATTRIBUTE_READ_ONLY, true); store.putInfo(info, EFS.SET_ATTRIBUTES, null); }
Dette type API tillader dig at hente og ændre filoplysninger med et enkelt kald til filsystemet. I eksemplet ovenfor er der kun et filsystemkald, der henter oplysningerne, og derefter kan du udføre så mange funktioner, som du ønsker, på objektet IFileInfo uden at anvende disken igen.
Klassen EFS har statiske fabriksmetoder til at hente forekomster af IFileStore og IFileSystem samt forskellige indstillingskonstanter og fejlkoder.