Package org.gradle.api.file

## Interface FileTree

- All Superinterfaces:
    `AntBuilderAware`, `Buildable`, `FileCollection`, `java.lang.Iterable<java.io.File>`
  All Known Subinterfaces:
    `ConfigurableFileTree`, `SourceDirectorySet`

      public interface FileTree
      extends FileCollection

  A `FileTree` represents a hierarchy of files. It extends `FileCollection` to add hierarchy query and manipulation methods. You typically use a `FileTree` to represent files to copy or the contents of an archive.

  You can obtain a `FileTree` instance using `Project.fileTree(java.util.Map)`, `Project.zipTree(Object)` or `Project.tarTree(Object)`.

  The order of the files in a `FileTree` is not stable, even on a single computer.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.gradle.api.file.FileCollection

      `FileCollection.AntType`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `FileTree` | `getAsFileTree()` | Returns this.
    `java.util.Set<java.io.File>` | `getFiles()` | Returns the contents of this tree as a flattened Set.
    `FileTree` | `matching​(Closure filterConfigClosure)` | Restricts the contents of this tree to those files matching the given filter.
    `FileTree` | `matching​(Action<? super PatternFilterable> filterConfigAction)` | Restricts the contents of this tree to those files matching the given filter.
    `FileTree` | `matching​(PatternFilterable patterns)` | Restricts the contents of this tree to those files matching the given filter.
    `FileTree` | `plus​(FileTree fileTree)` | Returns a `FileTree` which contains the union of this tree and the given tree.
    `FileTree` | `visit​(Closure visitor)` | Visits the files and directories in this file tree.
    `FileTree` | `visit​(Action<? super FileVisitDetails> visitor)` | Visits the files and directories in this file tree.
    `FileTree` | `visit​(FileVisitor visitor)` | Visits the files and directories in this file tree.

    - ### Methods inherited from interface org.gradle.api.Buildable

      `getBuildDependencies`

    - ### Methods inherited from interface org.gradle.api.file.FileCollection

      `addToAntBuilder, addToAntBuilder, contains, filter, filter, getAsPath, getElements, getSingleFile, isEmpty, minus, plus`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, iterator, spliterator`

- - ### Method Detail

    - #### matching

          FileTree matching​(Closure filterConfigClosure)

      Restricts the contents of this tree to those files matching the given filter. The filtered tree is live, so that any changes to this tree are reflected in the filtered tree.

      The given closure is used to configure the filter. A `PatternFilterable` is passed to the closure as its delegate. Only files which match the specified include patterns will be included in the filtered tree. Any files which match the specified exclude patterns will be excluded from the filtered tree.

      Parameters:
        `filterConfigClosure` - the closure to use to configure the filter.
      Returns:
        The filtered tree.

    - #### matching

          FileTree matching​(Action<? super PatternFilterable> filterConfigAction)

      Restricts the contents of this tree to those files matching the given filter. The filtered tree is live, so that any changes to this tree are reflected in the filtered tree.

      The given action is used to configure the filter. A `PatternFilterable` is passed to the action. Only files which match the specified include patterns will be included in the filtered tree. Any files which match the specified exclude patterns will be excluded from the filtered tree.

      Parameters:
        `filterConfigAction` - Action to use to configure the filter.
      Returns:
        The filtered tree.
      Since:
        3.3

    - #### matching

          FileTree matching​(PatternFilterable patterns)

      Restricts the contents of this tree to those files matching the given filter. The filtered tree is live, so that any changes to this tree are reflected in the filtered tree.

      The given pattern set is used to configure the filter. Only files which match the specified include patterns will be included in the filtered tree. Any files which match the specified exclude patterns will be excluded from the filtered tree.

      Parameters:
        `patterns` - the pattern set to use to configure the filter.
      Returns:
        The filtered tree.

    - #### visit

          FileTree visit​(FileVisitor visitor)

      Visits the files and directories in this file tree. Files are visited in depth-first prefix order, so that a directory is visited before its children.
      Parameters:
        `visitor` - The visitor.
      Returns:
        this

    - #### visit

          FileTree visit​(Closure visitor)

      Visits the files and directories in this file tree. Files are visited in depth-first prefix order, so that a directory is visited before its children. The file/directory to be visited is passed to the given closure as a `FileVisitDetails`
      Parameters:
        `visitor` - The visitor.
      Returns:
        this

    - #### visit

          FileTree visit​(Action<? super FileVisitDetails> visitor)

      Visits the files and directories in this file tree. Files are visited in depth-first prefix order, so that a directory is visited before its children. The file/directory to be visited is passed to the given action as a `FileVisitDetails`
      Parameters:
        `visitor` - The visitor.
      Returns:
        this

    - #### plus

          FileTree plus​(FileTree fileTree)

      Returns a `FileTree` which contains the union of this tree and the given tree. The returned tree is live, so that changes to either this tree or the other source tree are reflected in the returned tree.
      Parameters:
        `fileTree` - The tree. Should not be null.
      Returns:
        The union of this tree and the given tree.

    - #### getAsFileTree

          FileTree getAsFileTree()

      Returns this.
      Specified by:
        `getAsFileTree` in interface `FileCollection`
      Returns:
        this

    - #### getFiles

          java.util.Set<java.io.File> getFiles()

      Returns the contents of this tree as a flattened Set.

      The order of the files in a `FileTree` is not stable, even on a single computer.

      Specified by:
        `getFiles` in interface `FileCollection`
      Returns:
        The files. Returns an empty set if this tree is empty.