io.vertx.core.file

## Interface FileSystem

-     public interface FileSystem

  Contains a broad set of operations for manipulating files on the file system.

  A (potential) blocking and non blocking version of each operation is provided.

  The non blocking versions take a handler which is called when the operation completes or an error occurs.

  The blocking versions are named `xxxBlocking` and return the results, or throw exceptions directly. In many cases, depending on the operating system and file system some of the potentially blocking operations can return quickly, which is why we provide them, but it's highly recommended that you test how long they take to return in your particular application before using them on an event loop.

  Please consult the documentation for more information on file system support.

  Author:
    Tim Fox

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `FileSystem` | `chmod(String path, String perms, Handler<AsyncResult<Void>> handler)` Change the permissions on the file represented by `path` to `perms`, asynchronously.
    `FileSystem` | `chmodBlocking(String path, String perms)` Blocking version of `chmod(String, String, Handler)`
    `FileSystem` | `chmodRecursive(String path, String perms, String dirPerms, Handler<AsyncResult<Void>> handler)` Change the permissions on the file represented by `path` to `perms`, asynchronously.
    `FileSystem` | `chmodRecursiveBlocking(String path, String perms, String dirPerms)` Blocking version of `chmodRecursive(String, String, String, Handler)`
    `FileSystem` | `chown(String path, String user, String group, Handler<AsyncResult<Void>> handler)` Change the ownership on the file represented by `path` to `user` and {code group}, asynchronously.
    `FileSystem` | `chownBlocking(String path, String user, String group)` Blocking version of `chown(String, String, String, Handler)`
    `FileSystem` | `copy(String from, String to, CopyOptions options, Handler<AsyncResult<Void>> handler)` Copy a file from the path `from` to path `to`, asynchronously.
    `FileSystem` | `copy(String from, String to, Handler<AsyncResult<Void>> handler)` Copy a file from the path `from` to path `to`, asynchronously.
    `FileSystem` | `copyBlocking(String from, String to)` Blocking version of `copy(String, String, Handler)`
    `FileSystem` | `copyRecursive(String from, String to, boolean recursive, Handler<AsyncResult<Void>> handler)` Copy a file from the path `from` to path `to`, asynchronously.
    `FileSystem` | `copyRecursiveBlocking(String from, String to, boolean recursive)` Blocking version of `copyRecursive(String, String, boolean, Handler)`
    `FileSystem` | `createFile(String path, Handler<AsyncResult<Void>> handler)` Creates an empty file with the specified `path`, asynchronously.
    `FileSystem` | `createFile(String path, String perms, Handler<AsyncResult<Void>> handler)` Creates an empty file with the specified `path` and permissions `perms`, asynchronously.
    `FileSystem` | `createFileBlocking(String path)` Blocking version of `createFile(String, Handler)`
    `FileSystem` | `createFileBlocking(String path, String perms)` Blocking version of `createFile(String, String, Handler)`
    `FileSystem` | `delete(String path, Handler<AsyncResult<Void>> handler)` Deletes the file represented by the specified `path`, asynchronously.
    `FileSystem` | `deleteBlocking(String path)` Blocking version of `delete(String, Handler)`
    `FileSystem` | `deleteRecursive(String path, boolean recursive, Handler<AsyncResult<Void>> handler)` Deletes the file represented by the specified `path`, asynchronously.
    `FileSystem` | `deleteRecursiveBlocking(String path, boolean recursive)` Blocking version of `deleteRecursive(String, boolean, Handler)`
    `FileSystem` | `exists(String path, Handler<AsyncResult<Boolean>> handler)` Determines whether the file as specified by the path `path` exists, asynchronously.
    `boolean` | `existsBlocking(String path)` Blocking version of `exists(String, Handler)`
    `FileSystem` | `fsProps(String path, Handler<AsyncResult<FileSystemProps>> handler)` Returns properties of the file-system being used by the specified `path`, asynchronously.
    `FileSystemProps` | `fsPropsBlocking(String path)` Blocking version of `fsProps(String, Handler)`
    `FileSystem` | `link(String link, String existing, Handler<AsyncResult<Void>> handler)` Create a hard link on the file system from `link` to `existing`, asynchronously.
    `FileSystem` | `linkBlocking(String link, String existing)` Blocking version of `link(String, String, Handler)`
    `FileSystem` | `lprops(String path, Handler<AsyncResult<FileProps>> handler)` Obtain properties for the link represented by `path`, asynchronously.
    `FileProps` | `lpropsBlocking(String path)` Blocking version of `lprops(String, Handler)`
    `FileSystem` | `mkdir(String path, Handler<AsyncResult<Void>> handler)` Create the directory represented by `path`, asynchronously.
    `FileSystem` | `mkdir(String path, String perms, Handler<AsyncResult<Void>> handler)` Create the directory represented by `path`, asynchronously.
    `FileSystem` | `mkdirBlocking(String path)` Blocking version of `mkdir(String, Handler)`
    `FileSystem` | `mkdirBlocking(String path, String perms)` Blocking version of `mkdir(String, String, Handler)`
    `FileSystem` | `mkdirs(String path, Handler<AsyncResult<Void>> handler)` Create the directory represented by `path` and any non existent parents, asynchronously.
    `FileSystem` | `mkdirs(String path, String perms, Handler<AsyncResult<Void>> handler)` Create the directory represented by `path` and any non existent parents, asynchronously.
    `FileSystem` | `mkdirsBlocking(String path)` Blocking version of `mkdirs(String, Handler)`
    `FileSystem` | `mkdirsBlocking(String path, String perms)` Blocking version of `mkdirs(String, String, Handler)`
    `FileSystem` | `move(String from, String to, CopyOptions options, Handler<AsyncResult<Void>> handler)` Move a file from the path `from` to path `to`, asynchronously.
    `FileSystem` | `move(String from, String to, Handler<AsyncResult<Void>> handler)` Move a file from the path `from` to path `to`, asynchronously.
    `FileSystem` | `moveBlocking(String from, String to)` Blocking version of `move(String, String, Handler)`
    `FileSystem` | `open(String path, OpenOptions options, Handler<AsyncResult<AsyncFile>> handler)` Open the file represented by `path`, asynchronously.
    `AsyncFile` | `openBlocking(String path, OpenOptions options)` Blocking version of `open(String, io.vertx.core.file.OpenOptions, Handler)`
    `FileSystem` | `props(String path, Handler<AsyncResult<FileProps>> handler)` Obtain properties for the file represented by `path`, asynchronously.
    `FileProps` | `propsBlocking(String path)` Blocking version of `props(String, Handler)`
    `FileSystem` | `readDir(String path, Handler<AsyncResult<List<String>>> handler)` Read the contents of the directory specified by `path`, asynchronously.
    `FileSystem` | `readDir(String path, String filter, Handler<AsyncResult<List<String>>> handler)` Read the contents of the directory specified by `path`, asynchronously.
    `List<String>` | `readDirBlocking(String path)` Blocking version of `readDir(String, Handler)`
    `List<String>` | `readDirBlocking(String path, String filter)` Blocking version of `readDir(String, String, Handler)`
    `FileSystem` | `readFile(String path, Handler<AsyncResult<Buffer>> handler)` Reads the entire file as represented by the path `path` as a `Buffer`, asynchronously.
    `Buffer` | `readFileBlocking(String path)` Blocking version of `readFile(String, Handler)`
    `FileSystem` | `readSymlink(String link, Handler<AsyncResult<String>> handler)` Returns the path representing the file that the symbolic link specified by `link` points to, asynchronously.
    `String` | `readSymlinkBlocking(String link)` Blocking version of `readSymlink(String, Handler)`
    `FileSystem` | `symlink(String link, String existing, Handler<AsyncResult<Void>> handler)` Create a symbolic link on the file system from `link` to `existing`, asynchronously.
    `FileSystem` | `symlinkBlocking(String link, String existing)` Blocking version of `link(String, String, Handler)`
    `FileSystem` | `truncate(String path, long len, Handler<AsyncResult<Void>> handler)` Truncate the file represented by `path` to length `len` in bytes, asynchronously.
    `FileSystem` | `truncateBlocking(String path, long len)` Blocking version of `truncate(String, long, Handler)`
    `FileSystem` | `unlink(String link, Handler<AsyncResult<Void>> handler)` Unlinks the link on the file system represented by the path `link`, asynchronously.
    `FileSystem` | `unlinkBlocking(String link)` Blocking version of `unlink(String, Handler)`
    `FileSystem` | `writeFile(String path, Buffer data, Handler<AsyncResult<Void>> handler)` Creates the file, and writes the specified `Buffer data` to the file represented by the path `path`, asynchronously.
    `FileSystem` | `writeFileBlocking(String path, Buffer data)` Blocking version of `writeFile(String, Buffer, Handler)`

- - ### Method Detail

    - #### copy

          FileSystem copy(String from,
                          String to,
                          Handler<AsyncResult<Void>> handler)

      Copy a file from the path `from` to path `to`, asynchronously.

      The copy will fail if the destination already exists.

      Parameters:
        `from` - the path to copy from
        `to` - the path to copy to
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### copy

          FileSystem copy(String from,
                          String to,
                          CopyOptions options,
                          Handler<AsyncResult<Void>> handler)

      Copy a file from the path `from` to path `to`, asynchronously.
      Parameters:
        `from` - the path to copy from
        `to` - the path to copy to
        `options` - options describing how the file should be copied
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### copyBlocking

          FileSystem copyBlocking(String from,
                                  String to)

      Blocking version of `copy(String, String, Handler)`

    - #### copyRecursive

          FileSystem copyRecursive(String from,
                                   String to,
                                   boolean recursive,
                                   Handler<AsyncResult<Void>> handler)

      Copy a file from the path `from` to path `to`, asynchronously.

      If `recursive` is `true` and `from` represents a directory, then the directory and its contents will be copied recursively to the destination `to`.

      The copy will fail if the destination if the destination already exists.

      Parameters:
        `from` - the path to copy from
        `to` - the path to copy to
        `recursive` -
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### copyRecursiveBlocking

          FileSystem copyRecursiveBlocking(String from,
                                           String to,
                                           boolean recursive)

      Blocking version of `copyRecursive(String, String, boolean, Handler)`

    - #### move

          FileSystem move(String from,
                          String to,
                          Handler<AsyncResult<Void>> handler)

      Move a file from the path `from` to path `to`, asynchronously.

      The move will fail if the destination already exists.

      Parameters:
        `from` - the path to copy from
        `to` - the path to copy to
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### move

          FileSystem move(String from,
                          String to,
                          CopyOptions options,
                          Handler<AsyncResult<Void>> handler)

      Move a file from the path `from` to path `to`, asynchronously.
      Parameters:
        `from` - the path to copy from
        `to` - the path to copy to
        `options` - options describing how the file should be copied
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### moveBlocking

          FileSystem moveBlocking(String from,
                                  String to)

      Blocking version of `move(String, String, Handler)`

    - #### truncate

          FileSystem truncate(String path,
                              long len,
                              Handler<AsyncResult<Void>> handler)

      Truncate the file represented by `path` to length `len` in bytes, asynchronously.

      The operation will fail if the file does not exist or `len` is less than `zero`.

      Parameters:
        `path` - the path to the file
        `len` - the length to truncate it to
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### truncateBlocking

          FileSystem truncateBlocking(String path,
                                      long len)

      Blocking version of `truncate(String, long, Handler)`

    - #### chmod

          FileSystem chmod(String path,
                           String perms,
                           Handler<AsyncResult<Void>> handler)

      Change the permissions on the file represented by `path` to `perms`, asynchronously.

      The permission String takes the form rwxr-x--- as specified here.

      Parameters:
        `path` - the path to the file
        `perms` - the permissions string
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### chmodBlocking

          FileSystem chmodBlocking(String path,
                                   String perms)

      Blocking version of `chmod(String, String, Handler)`

    - #### chmodRecursive

          FileSystem chmodRecursive(String path,
                                    String perms,
                                    String dirPerms,
                                    Handler<AsyncResult<Void>> handler)

      Change the permissions on the file represented by `path` to `perms`, asynchronously.

      The permission String takes the form rwxr-x--- as specified in {here}.

      If the file is directory then all contents will also have their permissions changed recursively. Any directory permissions will be set to `dirPerms`, whilst any normal file permissions will be set to `perms`.

      Parameters:
        `path` - the path to the file
        `perms` - the permissions string
        `dirPerms` - the directory permissions
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### chmodRecursiveBlocking

          FileSystem chmodRecursiveBlocking(String path,
                                            String perms,
                                            String dirPerms)

      Blocking version of `chmodRecursive(String, String, String, Handler)`

    - #### chown

          FileSystem chown(String path,
                           String user,
                           String group,
                           Handler<AsyncResult<Void>> handler)

      Change the ownership on the file represented by `path` to `user` and {code group}, asynchronously.
      Parameters:
        `path` - the path to the file
        `user` - the user name, `null` will not change the user name
        `group` - the user group, `null` will not change the user group name
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### chownBlocking

          FileSystem chownBlocking(String path,
                                   String user,
                                   String group)

      Blocking version of `chown(String, String, String, Handler)`

    - #### props

          FileSystem props(String path,
                           Handler<AsyncResult<FileProps>> handler)

      Obtain properties for the file represented by `path`, asynchronously.

      If the file is a link, the link will be followed.

      Parameters:
        `path` - the path to the file
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### propsBlocking

          FileProps propsBlocking(String path)

      Blocking version of `props(String, Handler)`

    - #### lprops

          FileSystem lprops(String path,
                            Handler<AsyncResult<FileProps>> handler)

      Obtain properties for the link represented by `path`, asynchronously.

      The link will not be followed.

      Parameters:
        `path` - the path to the file
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### lpropsBlocking

          FileProps lpropsBlocking(String path)

      Blocking version of `lprops(String, Handler)`

    - #### link

          FileSystem link(String link,
                          String existing,
                          Handler<AsyncResult<Void>> handler)

      Create a hard link on the file system from `link` to `existing`, asynchronously.
      Parameters:
        `link` - the link
        `existing` - the link destination
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### linkBlocking

          FileSystem linkBlocking(String link,
                                  String existing)

      Blocking version of `link(String, String, Handler)`

    - #### symlink

          FileSystem symlink(String link,
                             String existing,
                             Handler<AsyncResult<Void>> handler)

      Create a symbolic link on the file system from `link` to `existing`, asynchronously.
      Parameters:
        `link` - the link
        `existing` - the link destination
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### symlinkBlocking

          FileSystem symlinkBlocking(String link,
                                     String existing)

      Blocking version of `link(String, String, Handler)`

    - #### unlink

          FileSystem unlink(String link,
                            Handler<AsyncResult<Void>> handler)

      Unlinks the link on the file system represented by the path `link`, asynchronously.
      Parameters:
        `link` - the link
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### unlinkBlocking

          FileSystem unlinkBlocking(String link)

      Blocking version of `unlink(String, Handler)`

    - #### readSymlink

          FileSystem readSymlink(String link,
                                 Handler<AsyncResult<String>> handler)

      Returns the path representing the file that the symbolic link specified by `link` points to, asynchronously.
      Parameters:
        `link` - the link
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### readSymlinkBlocking

          String readSymlinkBlocking(String link)

      Blocking version of `readSymlink(String, Handler)`

    - #### delete

          FileSystem delete(String path,
                            Handler<AsyncResult<Void>> handler)

      Deletes the file represented by the specified `path`, asynchronously.
      Parameters:
        `path` - path to the file
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### deleteBlocking

          FileSystem deleteBlocking(String path)

      Blocking version of `delete(String, Handler)`

    - #### deleteRecursive

          FileSystem deleteRecursive(String path,
                                     boolean recursive,
                                     Handler<AsyncResult<Void>> handler)

      Deletes the file represented by the specified `path`, asynchronously.

      If the path represents a directory and `recursive = true` then the directory and its contents will be deleted recursively.

      Parameters:
        `path` - path to the file
        `recursive` - delete recursively?
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### deleteRecursiveBlocking

          FileSystem deleteRecursiveBlocking(String path,
                                             boolean recursive)

      Blocking version of `deleteRecursive(String, boolean, Handler)`

    - #### mkdir

          FileSystem mkdir(String path,
                           Handler<AsyncResult<Void>> handler)

      Create the directory represented by `path`, asynchronously.

      The operation will fail if the directory already exists.

      Parameters:
        `path` - path to the file
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### mkdirBlocking

          FileSystem mkdirBlocking(String path)

      Blocking version of `mkdir(String, Handler)`

    - #### mkdir

          FileSystem mkdir(String path,
                           String perms,
                           Handler<AsyncResult<Void>> handler)

      Create the directory represented by `path`, asynchronously.

      The new directory will be created with permissions as specified by `perms`.

      The permission String takes the form rwxr-x--- as specified in here.

      The operation will fail if the directory already exists.

      Parameters:
        `path` - path to the file
        `perms` - the permissions string
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### mkdirBlocking

          FileSystem mkdirBlocking(String path,
                                   String perms)

      Blocking version of `mkdir(String, String, Handler)`

    - #### mkdirs

          FileSystem mkdirs(String path,
                            Handler<AsyncResult<Void>> handler)

      Create the directory represented by `path` and any non existent parents, asynchronously.

      The operation will fail if the directory already exists.

      Parameters:
        `path` - path to the file
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### mkdirsBlocking

          FileSystem mkdirsBlocking(String path)

      Blocking version of `mkdirs(String, Handler)`

    - #### mkdirs

          FileSystem mkdirs(String path,
                            String perms,
                            Handler<AsyncResult<Void>> handler)

      Create the directory represented by `path` and any non existent parents, asynchronously.

      The new directory will be created with permissions as specified by `perms`.

      The permission String takes the form rwxr-x--- as specified in here.

      The operation will fail if the directory already exists.

      Parameters:
        `path` - path to the file
        `perms` - the permissions string
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### mkdirsBlocking

          FileSystem mkdirsBlocking(String path,
                                    String perms)

      Blocking version of `mkdirs(String, String, Handler)`

    - #### readDir

          FileSystem readDir(String path,
                             Handler<AsyncResult<List<String>>> handler)

      Read the contents of the directory specified by `path`, asynchronously.

      The result is an array of String representing the paths of the files inside the directory.

      Parameters:
        `path` - path to the file
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### readDirBlocking

          List<String> readDirBlocking(String path)

      Blocking version of `readDir(String, Handler)`

    - #### readDir

          FileSystem readDir(String path,
                             String filter,
                             Handler<AsyncResult<List<String>>> handler)

      Read the contents of the directory specified by `path`, asynchronously.

      The parameter `filter` is a regular expression. If `filter` is specified then only the paths that match @{filter}will be returned.

      The result is an array of String representing the paths of the files inside the directory.

      Parameters:
        `path` - path to the directory
        `filter` - the filter expression
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### readDirBlocking

          List<String> readDirBlocking(String path,
                                       String filter)

      Blocking version of `readDir(String, String, Handler)`

    - #### readFile

          FileSystem readFile(String path,
                              Handler<AsyncResult<Buffer>> handler)

      Reads the entire file as represented by the path `path` as a `Buffer`, asynchronously.

      Do not use this method to read very large files or you risk running out of available RAM.

      Parameters:
        `path` - path to the file
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### readFileBlocking

          Buffer readFileBlocking(String path)

      Blocking version of `readFile(String, Handler)`

    - #### writeFile

          FileSystem writeFile(String path,
                               Buffer data,
                               Handler<AsyncResult<Void>> handler)

      Creates the file, and writes the specified `Buffer data` to the file represented by the path `path`, asynchronously.
      Parameters:
        `path` - path to the file
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### writeFileBlocking

          FileSystem writeFileBlocking(String path,
                                       Buffer data)

      Blocking version of `writeFile(String, Buffer, Handler)`

    - #### open

          FileSystem open(String path,
                          OpenOptions options,
                          Handler<AsyncResult<AsyncFile>> handler)

      Open the file represented by `path`, asynchronously.

      The file is opened for both reading and writing. If the file does not already exist it will be created.

      Parameters:
        `path` - path to the file
        `options` - options describing how the file should be opened
      Returns:
        a reference to this, so the API can be used fluently

    - #### openBlocking

          AsyncFile openBlocking(String path,
                                 OpenOptions options)

      Blocking version of `open(String, io.vertx.core.file.OpenOptions, Handler)`

    - #### createFile

          FileSystem createFile(String path,
                                Handler<AsyncResult<Void>> handler)

      Creates an empty file with the specified `path`, asynchronously.
      Parameters:
        `path` - path to the file
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### createFileBlocking

          FileSystem createFileBlocking(String path)

      Blocking version of `createFile(String, Handler)`

    - #### createFile

          FileSystem createFile(String path,
                                String perms,
                                Handler<AsyncResult<Void>> handler)

      Creates an empty file with the specified `path` and permissions `perms`, asynchronously.
      Parameters:
        `path` - path to the file
        `perms` - the permissions string
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### createFileBlocking

          FileSystem createFileBlocking(String path,
                                        String perms)

      Blocking version of `createFile(String, String, Handler)`

    - #### exists

          FileSystem exists(String path,
                            Handler<AsyncResult<Boolean>> handler)

      Determines whether the file as specified by the path `path` exists, asynchronously.
      Parameters:
        `path` - path to the file
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### existsBlocking

          boolean existsBlocking(String path)

      Blocking version of `exists(String, Handler)`

    - #### fsProps

          FileSystem fsProps(String path,
                             Handler<AsyncResult<FileSystemProps>> handler)

      Returns properties of the file-system being used by the specified `path`, asynchronously.
      Parameters:
        `path` - path to anywhere on the filesystem
        `handler` - the handler that will be called on completion
      Returns:
        a reference to this, so the API can be used fluently

    - #### fsPropsBlocking

          FileSystemProps fsPropsBlocking(String path)

      Blocking version of `fsProps(String, Handler)`

Copyright © 2018 Eclipse. All rights reserved.