Package org.eclipse.core.resources

# Interface IFileState

All Superinterfaces:
  `IAdaptable`, `IEncodedStorage`, `IStorage`

public interface IFileState extends IEncodedStorage, IAdaptable
A previous state of a file stored in the workspace's local history.

Certain methods for updating, deleting, or moving a file cause the "before" contents of the file to be copied to an internal area of the workspace called the local history area thus providing a limited history of earlier states of a file.

Moving or copying a file will cause a copy of its local history to appear at the new location as well as at the original location. Subsequent changes to either file will only affect the local history of the file changed. Deleting a file and creating another one at the same path does not affect the history. If the original file had history, that same history will be available for the new one.

The local history does not track resource properties. File states are volatile; the platform does not guarantee that a certain state will always be in the local history.

File state objects implement the `IAdaptable` interface; extensions are managed by the platform's adapter manager.

See Also:
  - `IFile`
  - `IStorage`
  - `Platform.getAdapterManager()`
Restriction:
  This interface is not intended to be implemented by clients.
Restriction:
  This interface is not intended to be extended by clients.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`exists()`
Returns whether this file state still exists in the local history.
`InputStream`
`getContents()`
Returns an open input stream on the contents of this file state.
`IPath`
`getFullPath()`
Returns the full path of this file state.
`long`
`getModificationTime()`
Returns the modification time of the file.
`String`
`getName()`
Returns the name of this file state.
`boolean`
`isReadOnly()`
Returns whether this file state is read-only.

### Methods inherited from interface org.eclipse.core.runtime.IAdaptable

`getAdapter`

### Methods inherited from interface org.eclipse.core.resources.IEncodedStorage

`getCharset`

## Method Details

### exists

boolean exists()
Returns whether this file state still exists in the local history.

Returns:
  `true` if this state exists, and `false` if it does not

### getContents

InputStream getContents() throws CoreException
Returns an open input stream on the contents of this file state. This refinement of the corresponding `IStorage` method returns an open input stream on the contents this file state represents. The client is responsible for closing the stream when finished.

Specified by:
  `getContents` in interface `IStorage`
Returns:
  an input stream containing the contents of the file
Throws:
  `CoreException` - if this method fails. Reasons include:
  - This state does not exist.

### getFullPath

IPath getFullPath()
Returns the full path of this file state. This refinement of the corresponding `IStorage` method specifies that `IFileState`s always have a path and that path is the full workspace path of the file represented by this state.

Specified by:
  `getFullPath` in interface `IStorage`
Returns:
  the path related to the data represented by this storage or `null` if none.
See Also:
  - `IResource.getFullPath()`
  - `IStorage.getFullPath()`

### getModificationTime

long getModificationTime()
Returns the modification time of the file. If you create a file at 9:00 and modify it at 11:00, the file state added to the history at 11:00 will have 9:00 as its modification time.

Note that is used only to give the user a general idea of how old this file state is.

Returns:
  the time of last modification, in milliseconds since January 1, 1970, 00:00:00 GMT.

### getName

String getName()
Returns the name of this file state. This refinement of the corresponding `IStorage` method specifies that `IFileState`s always have a name and that name is equivalent to the last segment of the full path of the resource represented by this state.

Specified by:
  `getName` in interface `IStorage`
Returns:
  the name of the data represented by this storage, or `null` if this storage has no name
See Also:
  - `IResource.getName()`
  - `IStorage.getName()`

### isReadOnly

boolean isReadOnly()
Returns whether this file state is read-only. This refinement of the corresponding `IStorage` method restricts `IFileState`s to always be read-only.

Specified by:
  `isReadOnly` in interface `IStorage`
Returns:
  `true` if this storage is read-only
See Also:
  - `IStorage`