org.eclipse.core.filesystem

## Class EFS

- java.lang.Object
- - org.eclipse.core.filesystem.EFS

    public class EFS
    extends Object

This class is the main entry point for clients of the Eclipse file system API. This class has factory methods for obtaining instances of file systems and file stores, and provides constants for option values and error codes.

Since:
  org.eclipse.core.filesystem 1.0
Restriction:
  This class is not intended to be subclassed by clients.
Restriction:
  This class is not intended to be instantiated by clients.

### Field Summary

Fields
`static int` `APPEND` Option flag constant (value 1 <<0) indicating a file opened for appending data to the end.
`static int` `ATTRIBUTE_ARCHIVE` Attribute constant (value 1 <<3) indicating that a file is an archive.
`static int` `ATTRIBUTE_EXECUTABLE` Attribute constant (value 1 <<2) indicating that a file is a executable.
`static int` `ATTRIBUTE_GROUP_EXECUTE` Attribute constant (value 1 <<27) indicating that users in file's group have an execute permission.
`static int` `ATTRIBUTE_GROUP_READ` Attribute constant (value 1 <<25) indicating that users in file's group have a read permission.
`static int` `ATTRIBUTE_GROUP_WRITE` Attribute constant (value 1 <<26) indicating that users in file's group have a write permission.
`static int` `ATTRIBUTE_HIDDEN` Attribute constant (value 1 <<4) indicating that a file is hidden.
`static int` `ATTRIBUTE_IMMUTABLE` Attribute constant (value 1 <<21) indicating that a file is marked with immutable flag.
`static int` `ATTRIBUTE_LINK_TARGET` Attribute constant (value 1 <<6) for a string attribute indicating the target file name of a symbolic link.
`static int` `ATTRIBUTE_OTHER_EXECUTE` Attribute constant (value 1 <<30) indicating that other users have an execute permission.
`static int` `ATTRIBUTE_OTHER_READ` Attribute constant (value 1 <<28) indicating that other users have a read permission.
`static int` `ATTRIBUTE_OTHER_WRITE` Attribute constant (value 1 <<29) indicating that other users have a write permission.
`static int` `ATTRIBUTE_OWNER_EXECUTE` Attribute constant (value 1 <<24) indicating that file's owner has an execute permission.
`static int` `ATTRIBUTE_OWNER_READ` Attribute constant (value 1 <<22) indicating that a file's owner has a read permission.
`static int` `ATTRIBUTE_OWNER_WRITE` Attribute constant (value 1 <<23) indicating that file's owner has a write permission.
`static int` `ATTRIBUTE_READ_ONLY` Attribute constant (value 1 <<1) indicating that a file is read only.
`static int` `ATTRIBUTE_SYMLINK` Attribute constant (value 1 <<5) indicating that a file is a symbolic link.
`static int` `CACHE` Option flag constant (value 1 <<12) indicating that a cached representation of a file should be returned.
`static int` `ERROR_AUTH_FAILED` Status code constant (value 280) indicating that the file system failed to authenticate the request.
`static int` `ERROR_CASE_VARIANT_EXISTS` Status code constant (value 275) indicating this file system is not case sensitive and a file that differs only in case unexpectedly exists on the file system.
`static int` `ERROR_DELETE` Status code constant (value 273) indicating an error occurred while deleting from the file system.
`static int` `ERROR_EXISTS` Status code constant (value 268) indicating a store unexpectedly exists on the file system.
`static int` `ERROR_INTERNAL` Status code constant (value 566) indicating an internal error has occurred.
`static int` `ERROR_NO_LOCATION` Status code constant (value 270) indicating the file system location for a store could not be computed.
`static int` `ERROR_NOT_EXISTS` Status code constant (value 269) indicating a store unexpectedly does not exist on the file system.
`static int` `ERROR_PARENT_READ_ONLY` Status code constant (value 277) indicating that the parent file in the file system is marked as read-only.
`static int` `ERROR_READ` Status code constant (value 271) indicating an error occurred while reading from the file system.
`static int` `ERROR_READ_ONLY` Status code constant (value 279) indicating that the file in the file system is marked as read-only.
`static int` `ERROR_WRITE` Status code constant (value 272) indicating an error occurred while writing to the file system.
`static int` `ERROR_WRONG_TYPE` Status code constant (value 276) indicating a file exists in the file system but is not of the expected type (file instead of directory, or vice-versa).
`static int` `NONE` A constant known to be zero (0), used in operations which take bit flags to indicate that "no bits are set".
`static int` `OVERWRITE` Option flag constant (value 1 <<1) indicating that existing files may be overwritten.
`static String` `PI_FILE_SYSTEM` The unique identifier constant (value "`org.eclipse.core.filesystem`") of the Core file system plug-in.
`static String` `PT_FILE_SYSTEMS` The simple identifier constant (value "`filesystems`") of the extension point of the Core file system plug-in where plug-ins declare file system implementations.
`static String` `SCHEME_FILE` Scheme constant (value "file") indicating the local file system scheme.
`static String` `SCHEME_NULL` Scheme constant (value "null") indicating the null file system scheme.
`static int` `SET_ATTRIBUTES` Option flag constant (value 1 <<10) indicating that a file's attributes should be updated.
`static int` `SET_LAST_MODIFIED` Option flag constant (value 1 <<11) indicating that a file's last modified time should be updated.
`static int` `SHALLOW` Option flag constant (value 1 <<2) indicating that an operation acts on a single file or directory, and not its parents or children.

### Method Summary

All Methods Static Methods Concrete Methods
`static IFileInfo` `createFileInfo()` Creates an empty file information object.
`static IFileSystem` `getFileSystem(String scheme)` Returns a file system corresponding to the given scheme.
`static IFileSystem` `getLocalFileSystem()` Returns the local file system.
`static IFileSystem` `getNullFileSystem()` Returns the null file system.
`static IFileStore` `getStore(URI uri)` Returns the file store corresponding to the provided URI.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### PI_FILE_SYSTEM

    public static final String PI_FILE_SYSTEM

The unique identifier constant (value "`org.eclipse.core.filesystem`") of the Core file system plug-in.

See Also:
  Constant Field Values

#### PT_FILE_SYSTEMS

    public static final String PT_FILE_SYSTEMS

The simple identifier constant (value "`filesystems`") of the extension point of the Core file system plug-in where plug-ins declare file system implementations.

See Also:
  Constant Field Values

#### NONE

    public static final int NONE

A constant known to be zero (0), used in operations which take bit flags to indicate that "no bits are set". This value is also used as a default value in cases where a file system attribute cannot be computed.

See Also:
  `IFileInfo.getLength()`, `IFileInfo.getLastModified()`, Constant Field Values

#### APPEND

    public static final int APPEND

Option flag constant (value 1 <<0) indicating a file opened for appending data to the end.

See Also:
  `IFileStore.openOutputStream(int, IProgressMonitor)`, Constant Field Values

#### OVERWRITE

    public static final int OVERWRITE

Option flag constant (value 1 <<1) indicating that existing files may be overwritten.

See Also:
  `IFileStore.copy(IFileStore, int, IProgressMonitor)`, `IFileStore.move(IFileStore, int, IProgressMonitor)`, Constant Field Values

#### SHALLOW

    public static final int SHALLOW

Option flag constant (value 1 <<2) indicating that an operation acts on a single file or directory, and not its parents or children.

See Also:
  `IFileStore.copy(IFileStore, int, IProgressMonitor)`, `IFileStore.mkdir(int, IProgressMonitor)`, Constant Field Values

#### SET_ATTRIBUTES

    public static final int SET_ATTRIBUTES

Option flag constant (value 1 <<10) indicating that a file's attributes should be updated.

See Also:
  `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, Constant Field Values

#### SET_LAST_MODIFIED

    public static final int SET_LAST_MODIFIED

Option flag constant (value 1 <<11) indicating that a file's last modified time should be updated.

See Also:
  `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, Constant Field Values

#### CACHE

    public static final int CACHE

Option flag constant (value 1 <<12) indicating that a cached representation of a file should be returned.

See Also:
  `IFileStore.toLocalFile(int, IProgressMonitor)`, Constant Field Values

#### ATTRIBUTE_READ_ONLY

    public static final int ATTRIBUTE_READ_ONLY

Attribute constant (value 1 <<1) indicating that a file is read only.

See Also:
  `IFileStore.fetchInfo()`, `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, `IFileInfo.getAttribute(int)`, `IFileInfo.setAttribute(int, boolean)`, Constant Field Values

#### ATTRIBUTE_IMMUTABLE

    public static final int ATTRIBUTE_IMMUTABLE

Attribute constant (value 1 <<21) indicating that a file is marked with immutable flag.

Since:
  org.eclipse.core.filesystem 1.3
See Also:
  `IFileStore.fetchInfo()`, `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, `IFileInfo.getAttribute(int)`, `IFileInfo.setAttribute(int, boolean)`, Constant Field Values

#### ATTRIBUTE_OWNER_READ

    public static final int ATTRIBUTE_OWNER_READ

Attribute constant (value 1 <<22) indicating that a file's owner has a read permission.

Since:
  org.eclipse.core.filesystem 1.3
See Also:
  `IFileStore.fetchInfo()`, `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, `IFileInfo.getAttribute(int)`, `IFileInfo.setAttribute(int, boolean)`, Constant Field Values

#### ATTRIBUTE_OWNER_WRITE

    public static final int ATTRIBUTE_OWNER_WRITE

Attribute constant (value 1 <<23) indicating that file's owner has a write permission.

Since:
  org.eclipse.core.filesystem 1.3
See Also:
  `IFileStore.fetchInfo()`, `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, `IFileInfo.getAttribute(int)`, `IFileInfo.setAttribute(int, boolean)`, Constant Field Values

#### ATTRIBUTE_OWNER_EXECUTE

    public static final int ATTRIBUTE_OWNER_EXECUTE

Attribute constant (value 1 <<24) indicating that file's owner has an execute permission.

Since:
  org.eclipse.core.filesystem 1.3
See Also:
  `IFileStore.fetchInfo()`, `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, `IFileInfo.getAttribute(int)`, `IFileInfo.setAttribute(int, boolean)`, Constant Field Values

#### ATTRIBUTE_GROUP_READ

    public static final int ATTRIBUTE_GROUP_READ

Attribute constant (value 1 <<25) indicating that users in file's group have a read permission.

Since:
  org.eclipse.core.filesystem 1.3
See Also:
  `IFileStore.fetchInfo()`, `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, `IFileInfo.getAttribute(int)`, `IFileInfo.setAttribute(int, boolean)`, Constant Field Values

#### ATTRIBUTE_GROUP_WRITE

    public static final int ATTRIBUTE_GROUP_WRITE

Attribute constant (value 1 <<26) indicating that users in file's group have a write permission.

Since:
  org.eclipse.core.filesystem 1.3
See Also:
  `IFileStore.fetchInfo()`, `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, `IFileInfo.getAttribute(int)`, `IFileInfo.setAttribute(int, boolean)`, Constant Field Values

#### ATTRIBUTE_GROUP_EXECUTE

    public static final int ATTRIBUTE_GROUP_EXECUTE

Attribute constant (value 1 <<27) indicating that users in file's group have an execute permission.

Since:
  org.eclipse.core.filesystem 1.3
See Also:
  `IFileStore.fetchInfo()`, `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, `IFileInfo.getAttribute(int)`, `IFileInfo.setAttribute(int, boolean)`, Constant Field Values

#### ATTRIBUTE_OTHER_READ

    public static final int ATTRIBUTE_OTHER_READ

Attribute constant (value 1 <<28) indicating that other users have a read permission.

Since:
  org.eclipse.core.filesystem 1.3
See Also:
  `IFileStore.fetchInfo()`, `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, `IFileInfo.getAttribute(int)`, `IFileInfo.setAttribute(int, boolean)`, Constant Field Values

#### ATTRIBUTE_OTHER_WRITE

    public static final int ATTRIBUTE_OTHER_WRITE

Attribute constant (value 1 <<29) indicating that other users have a write permission.

Since:
  org.eclipse.core.filesystem 1.3
See Also:
  `IFileStore.fetchInfo()`, `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, `IFileInfo.getAttribute(int)`, `IFileInfo.setAttribute(int, boolean)`, Constant Field Values

#### ATTRIBUTE_OTHER_EXECUTE

    public static final int ATTRIBUTE_OTHER_EXECUTE

Attribute constant (value 1 <<30) indicating that other users have an execute permission.

Since:
  org.eclipse.core.filesystem 1.3
See Also:
  `IFileStore.fetchInfo()`, `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, `IFileInfo.getAttribute(int)`, `IFileInfo.setAttribute(int, boolean)`, Constant Field Values

#### ATTRIBUTE_EXECUTABLE

    public static final int ATTRIBUTE_EXECUTABLE

Attribute constant (value 1 <<2) indicating that a file is a executable.

See Also:
  `IFileStore.fetchInfo()`, `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, `IFileInfo.getAttribute(int)`, `IFileInfo.setAttribute(int, boolean)`, Constant Field Values

#### ATTRIBUTE_ARCHIVE

    public static final int ATTRIBUTE_ARCHIVE

Attribute constant (value 1 <<3) indicating that a file is an archive.

See Also:
  `IFileStore.fetchInfo()`, `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, `IFileInfo.getAttribute(int)`, `IFileInfo.setAttribute(int, boolean)`, Constant Field Values

#### ATTRIBUTE_HIDDEN

    public static final int ATTRIBUTE_HIDDEN

Attribute constant (value 1 <<4) indicating that a file is hidden.

See Also:
  `IFileStore.fetchInfo()`, `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, `IFileInfo.getAttribute(int)`, `IFileInfo.setAttribute(int, boolean)`, Constant Field Values

#### ATTRIBUTE_SYMLINK

    public static final int ATTRIBUTE_SYMLINK

Attribute constant (value 1 <<5) indicating that a file is a symbolic link.

If this attribute is `true` for a given `IFileInfo` instance, a String value may be associated with the attribute holding the symbolic link target. This link target can be retrieved with `IFileInfo.getStringAttribute(int)` with attribute type `ATTRIBUTE_LINK_TARGET`.

Symbolic links are handled transparently, as implemented by the underlying operating system. This means, that all other attributes of a `IFileInfo` apply to the link target instead of the link. Reading or writing a file, or changing attributes applies to the link target and not the link itself. In case a symbolic link points to another symbolic link, the chain of links is transparently followed and operations apply to the actual file or directory being referenced by the chain of symbolic links.

Broken symbolic links (which do not reference any valid file or directory) are being returned by `IFileStore.childInfos(int, IProgressMonitor)`, but `IFileInfo.exists()` returns `false` for these. Operations like reading or writing on broken symbolic links throw a "file not found" exception.

Since:
  org.eclipse.core.filesystem 1.1
See Also:
  `IFileStore.fetchInfo()`, `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`, `IFileInfo.getAttribute(int)`, `IFileInfo.setAttribute(int, boolean)`, Constant Field Values

#### ATTRIBUTE_LINK_TARGET

    public static final int ATTRIBUTE_LINK_TARGET

Attribute constant (value 1 <<6) for a string attribute indicating the target file name of a symbolic link.

Note that setting the link target attribute does not cause a symbolic link to be created, or changed to link to a different file. Rather, this attribute is set by file system implementations based on the current state of a link.

Since:
  org.eclipse.core.filesystem 1.1
See Also:
  `IFileInfo.getStringAttribute(int)`, `FileInfo.setStringAttribute(int, String)`, `ATTRIBUTE_SYMLINK`, Constant Field Values

#### SCHEME_FILE

    public static final String SCHEME_FILE

Scheme constant (value "file") indicating the local file system scheme.

See Also:
  `getLocalFileSystem()`, Constant Field Values

#### SCHEME_NULL

    public static final String SCHEME_NULL

Scheme constant (value "null") indicating the null file system scheme.

See Also:
  `getNullFileSystem()`, Constant Field Values

#### ERROR_EXISTS

    public static final int ERROR_EXISTS

Status code constant (value 268) indicating a store unexpectedly exists on the file system. Severity: error. Category: file system.

See Also:
  Constant Field Values

#### ERROR_NOT_EXISTS

    public static final int ERROR_NOT_EXISTS

Status code constant (value 269) indicating a store unexpectedly does not exist on the file system. Severity: error. Category: file system.

See Also:
  Constant Field Values

#### ERROR_NO_LOCATION

    public static final int ERROR_NO_LOCATION

Status code constant (value 270) indicating the file system location for a store could not be computed. Severity: error. Category: file system.

See Also:
  Constant Field Values

#### ERROR_READ

    public static final int ERROR_READ

Status code constant (value 271) indicating an error occurred while reading from the file system. Severity: error. Category: file system.

See Also:
  Constant Field Values

#### ERROR_WRITE

    public static final int ERROR_WRITE

Status code constant (value 272) indicating an error occurred while writing to the file system. Severity: error. Category: file system.

See Also:
  Constant Field Values

#### ERROR_DELETE

    public static final int ERROR_DELETE

Status code constant (value 273) indicating an error occurred while deleting from the file system. Severity: error. Category: file system.

See Also:
  Constant Field Values

#### ERROR_CASE_VARIANT_EXISTS

    public static final int ERROR_CASE_VARIANT_EXISTS

Status code constant (value 275) indicating this file system is not case sensitive and a file that differs only in case unexpectedly exists on the file system. Severity: error. Category: file system.

See Also:
  Constant Field Values

#### ERROR_WRONG_TYPE

    public static final int ERROR_WRONG_TYPE

Status code constant (value 276) indicating a file exists in the file system but is not of the expected type (file instead of directory, or vice-versa). Severity: error. Category: file system.

See Also:
  Constant Field Values

#### ERROR_PARENT_READ_ONLY

    public static final int ERROR_PARENT_READ_ONLY

Status code constant (value 277) indicating that the parent file in the file system is marked as read-only. Severity: error. Category: file system.

See Also:
  Constant Field Values

#### ERROR_READ_ONLY

    public static final int ERROR_READ_ONLY

Status code constant (value 279) indicating that the file in the file system is marked as read-only. Severity: error. Category: file system.

See Also:
  Constant Field Values

#### ERROR_AUTH_FAILED

    public static final int ERROR_AUTH_FAILED

Status code constant (value 280) indicating that the file system failed to authenticate the request. This can be caused by missing or incorrect authentication information being supplied. Severity: error. Category: file system.

Since:
  1.4
See Also:
  Constant Field Values

#### ERROR_INTERNAL

    public static final int ERROR_INTERNAL

Status code constant (value 566) indicating an internal error has occurred. Severity: error. Category: internal.

See Also:
  Constant Field Values

### Method Detail

#### createFileInfo

    public static IFileInfo createFileInfo()

Creates an empty file information object. The resulting information will represent a non-existent file with no name and no attributes set.

Returns:
  an empty file information object.
See Also:
  `IFileStore.putInfo(IFileInfo, int, IProgressMonitor)`

#### getFileSystem

    public static IFileSystem getFileSystem(String scheme)
                                     throws CoreException

Returns a file system corresponding to the given scheme.

Parameters:
  `scheme` - The file system URI scheme
Returns:
  The corresponding file system for the given scheme
Throws:
  `CoreException` - if this method fails. Reasons include:
  - There is no registered file system for the given URI scheme.
  - There was a failure initializing the file system.

#### getLocalFileSystem

    public static IFileSystem getLocalFileSystem()

Returns the local file system.

Returns:
  The local file system

#### getNullFileSystem

    public static IFileSystem getNullFileSystem()

Returns the null file system. The null file system can be used to represent a non-existent or unresolved file system. An example of a null file system is a file system whose location is relative to an undefined variable, or a system whose scheme is unknown.

Basic handle-based queries can be performed on the null file system, but all operations that actually require file system access will fail.

Returns:
  The null file system

#### getStore

    public static IFileStore getStore(URI uri)
                               throws CoreException

Returns the file store corresponding to the provided URI.

Parameters:
  `uri` - The URI of the file store to return
Returns:
  The file store
Throws:
  `CoreException` - if this method fails. Reasons include:
  - There is no registered file system for the given URI scheme.
  - The URI syntax was not in the appropriate form for that scheme.
  - There was a failure initializing the file system.