# FileSystemEntity class

The common super class for File, Directory, and Link objects.

FileSystemEntity objects are returned from directory listing operations. To determine if a FileSystemEntity is a File, a Directory, or a Link perform a type check:

    if (entity is File) (entity as File).readAsStringSync();

You can also use the type or typeSync methods to determine the type of a file system object.

Most methods in this class occur in synchronous and asynchronous pairs, for example, exists and existsSync. Unless you have a specific reason for using the synchronous version of a method, prefer the asynchronous version to avoid blocking your program.

Here's the exists method in action:

    entity.exists().then((isThere) {
      isThere ? print('exists') : print('non-existent');
    });

## Other resources

- Dart by Example provides additional task-oriented code samples that show how to use various API from the Directory class and the File class, both subclasses of FileSystemEntity.

- I/O for Command-Line Apps, a section from A Tour of the Dart Libraries covers files and directories.

- Write Command-Line Apps, a tutorial about writing command-line apps, includes information about files and directories.

Implemented by
  - Directory
  - File
  - Link

## Constructors

FileSystemEntity()

## Properties

absolute → FileSystemEntity
  Returns a FileSystemEntity whose path is the absolute path to this. [...]
  read-only
isAbsolute → bool
  Returns a bool indicating whether this object's path is absolute. [...]
  read-only
parent → Directory
  The directory containing this.
  read-only
path → String
  read-only
uri → Uri
  Returns a Uri representing the file system entity's location. [...]
  read-only
hashCode → int
  The hash code for this object. [...]
  read-only, inherited
runtimeType → Type
  A representation of the runtime type of the object.
  read-only, inherited

## Methods

delete({bool recursive: false }) → Future<FileSystemEntity>
  Deletes this FileSystemEntity. [...]
deleteSync({bool recursive: false }) → void
  Synchronously deletes this FileSystemEntity. [...]
exists() → Future<bool>
  Checks whether the file system entity with this path exists. Returns a `Future<bool>` that completes with the result. [...]
existsSync() → bool
  Synchronously checks whether the file system entity with this path exists. [...]
rename(String newPath) → Future<FileSystemEntity>
  Renames this file system entity. [...]
renameSync(String newPath) → FileSystemEntity
  Synchronously renames this file system entity. [...]
resolveSymbolicLinks() → Future<String>
  Resolves the path of a file system object relative to the current working directory. [...]
resolveSymbolicLinksSync() → String
  Resolves the path of a file system object relative to the current working directory. [...]
stat() → Future<FileStat>
  Calls the operating system's stat() function on the path of this FileSystemEntity. [...]
statSync() → FileStat
  Synchronously calls the operating system's stat() function on the path of this FileSystemEntity. [...]
watch({int events: FileSystemEvent.all, bool recursive: false }) → Stream<FileSystemEvent>
  Start watching the FileSystemEntity for changes. [...]
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a non-existent method or property is accessed. [...]
  inherited
toString() → String
  Returns a string representation of this object.
  inherited

## Operators

operator ==(dynamic other) → bool
  The equality operator. [...]
  inherited

## Static Properties

isWatchSupported → bool
  Test if watch is supported on the current system. [...]
  read-only

## Static Methods

identical(String path1, String path2) → Future<bool>
  Checks whether two paths refer to the same object in the file system. [...]
identicalSync(String path1, String path2) → bool
  Synchronously checks whether two paths refer to the same object in the file system. [...]
isDirectory(String path) → Future<bool>
  Checks if type(path) returns FileSystemEntityType.directory.
isDirectorySync(String path) → bool
  Synchronously checks if typeSync(path) returns FileSystemEntityType.directory.
isFile(String path) → Future<bool>
  Checks if type(path) returns FileSystemEntityType.file.
isFileSync(String path) → bool
  Synchronously checks if typeSync(path) returns FileSystemEntityType.file.
isLink(String path) → Future<bool>
  Checks if type(path, followLinks: false) returns FileSystemEntityType.link.
isLinkSync(String path) → bool
  Synchronously checks if typeSync(path, followLinks: false) returns FileSystemEntityType.link.
parentOf(String path) → String
  Removes the final path component of a path, using the platform's path separator to split the path. [...]
type(String path, { bool followLinks: true }) → Future<FileSystemEntityType>
  Finds the type of file system object that a path points to. [...]
typeSync(String path, { bool followLinks: true }) → FileSystemEntityType
  Synchronously finds the type of file system object that a path points to. [...]