Package org.gradle.api.file

## Interface FileSystemOperations

-     public interface FileSystemOperations

  Operations on the file system.

  An instance of this type can be injected into a task, plugin or other object by annotating a public constructor or property getter method with `javax.inject.Inject`.

  Since:
    6.0

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `WorkResult` | `copy​(Action<? super CopySpec> action)` | Copies the specified files.
    `CopySpec` | `copySpec()` | Creates a `CopySpec` which can later be used to copy files or create an archive.
    `CopySpec` | `copySpec​(Action<? super CopySpec> action)` | Creates a `CopySpec` which can later be used to copy files or create an archive.
    `WorkResult` | `delete​(Action<? super DeleteSpec> action)` | Deletes the specified files.
    `ConfigurableFilePermissions` | `directoryPermissions​(Action<? super ConfigurableFilePermissions> configureAction)` | Creates and configures directory access permissions.
    `ConfigurableFilePermissions` | `filePermissions​(Action<? super ConfigurableFilePermissions> configureAction)` | Creates and configures file access permissions.
    `ConfigurableFilePermissions` | `permissions​(int unixNumeric)` | Creates file/directory access permissions and initializes them via a Unix style numeric permissions.
    `ConfigurableFilePermissions` | `permissions​(java.lang.String unixNumericOrSymbolic)` | Creates file/directory access permissions and initializes them via a Unix style permission string.
    `Provider<ConfigurableFilePermissions>` | `permissions​(Provider<java.lang.String> permissions)` | `Provider` based version of `permissions(String)`, to facilitate wiring into property chains.
    `WorkResult` | `sync​(Action<? super CopySpec> action)` | Synchronizes the contents of a destination directory with some source directories and files.

- - ### Method Detail

    - #### copySpec

          @Incubating
          CopySpec copySpec​(Action<? super CopySpec> action)

      Creates a `CopySpec` which can later be used to copy files or create an archive. The given action is used to configure the `CopySpec` before it is returned by this method.
      Parameters:
        `action` - Action to configure the CopySpec
      Returns:
        The CopySpec
      Since:
        8.5

    - #### copySpec

          @Incubating
          CopySpec copySpec()

      Creates a `CopySpec` which can later be used to copy files or create an archive.
      Returns:
        a newly created copy spec
      Since:
        8.5

    - #### copy

          WorkResult copy​(Action<? super CopySpec> action)

      Copies the specified files. The given action is used to configure a `CopySpec`, which is then used to copy the files.
      Parameters:
        `action` - Action to configure the CopySpec
      Returns:
        `WorkResult` that can be used to check if the copy did any work.

    - #### sync

          WorkResult sync​(Action<? super CopySpec> action)

      Synchronizes the contents of a destination directory with some source directories and files. The given action is used to configure a `CopySpec`, which is then used to synchronize the files.
      Parameters:
        `action` - action Action to configure the CopySpec.
      Returns:
        `WorkResult` that can be used to check if the sync did any work.

    - #### delete

          WorkResult delete​(Action<? super DeleteSpec> action)

      Deletes the specified files. The given action is used to configure a `DeleteSpec`, which is then used to delete the files.
      Parameters:
        `action` - Action to configure the DeleteSpec
      Returns:
        `WorkResult` that can be used to check if delete did any work.

    - #### filePermissions

          @Incubating
          ConfigurableFilePermissions filePermissions​(Action<? super ConfigurableFilePermissions> configureAction)

      Creates and configures file access permissions. Differs from directory permissions due to the default value the permissions start out with before the configuration is applied. For details see `ConfigurableFilePermissions`.
      Parameters:
        `configureAction` - The configuration that gets applied to the newly created `FilePermissions`.
      Since:
        8.3

    - #### directoryPermissions

          @Incubating
          ConfigurableFilePermissions directoryPermissions​(Action<? super ConfigurableFilePermissions> configureAction)

      Creates and configures directory access permissions. Differs from file permissions due to the default value the permissions start out with before the configuration is applied. For details see `ConfigurableFilePermissions`.
      Parameters:
        `configureAction` - The configuration that gets applied to the newly created `FilePermissions`.
      Since:
        8.3

    - #### permissions

          @Incubating
          ConfigurableFilePermissions permissions​(java.lang.String unixNumericOrSymbolic)

      Creates file/directory access permissions and initializes them via a Unix style permission string. For details see `ConfigurableFilePermissions.unix(String)`.

      Doesn't have separate variants for files and directories, like other configuration methods, because the Unix style permission input completely overwrites the default values, so the distinction doesn't matter.

      Since:
        8.3

    - #### permissions

          @Incubating
          ConfigurableFilePermissions permissions​(int unixNumeric)

      Creates file/directory access permissions and initializes them via a Unix style numeric permissions. For details see `ConfigurableFilePermissions.unix(int)`.

      Doesn't have separate variants for files and directories, like other configuration methods, because the Unix style permission input completely overwrites the default values, so the distinction doesn't matter.

      Since:
        8.3

    - #### permissions

          @Incubating
          Provider<ConfigurableFilePermissions> permissions​(Provider<java.lang.String> permissions)

      `Provider` based version of `permissions(String)`, to facilitate wiring into property chains.
      Since:
        8.3