org.gradle.api.file

## Interface FileTreeElement

- All Known Subinterfaces:
    FileCopyDetails, FileVisitDetails

      public interface FileTreeElement

  Information about a file in a `FileTree`.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `copyTo(File target)` Copies this file to the given target file.
    `void` | `copyTo(OutputStream outstr)` Copies the content of this file to an output stream.
    `File` | `getFile()` Returns the file being visited.
    `long` | `getLastModified()` Returns the last modified time of this file.
    `int` | `getMode()` Returns the Unix permissions of this file, e.g.
    `String` | `getName()` Returns the base name of this file.
    `String` | `getPath()` Returns the path of this file, relative to the root of the containing file tree.
    `RelativePath` | `getRelativePath()` Returns the path of this file, relative to the root of the containing file tree.
    `long` | `getSize()` Returns the size of this file.
    `boolean` | `isDirectory()` Returns true if this element is a directory, or false if this element is a regular file.
    `InputStream` | `open()` Opens this file as an input stream.

- - ### Method Detail

    - #### getFile

          File getFile()

      Returns the file being visited.
      Returns:
        The file. Never returns null.

    - #### isDirectory

          boolean isDirectory()

      Returns true if this element is a directory, or false if this element is a regular file.
      Returns:
        true if this element is a directory.

    - #### getLastModified

          long getLastModified()

      Returns the last modified time of this file. Generally, calling this method is more performant than calling `getFile().lastModified()`
      Returns:
        The last modified time.

    - #### getSize

          long getSize()

      Returns the size of this file. Generally, calling this method is more performant than calling `getFile().length()`.
      Returns:
        The size, in bytes.

    - #### open

          InputStream open()

      Opens this file as an input stream. Generally, calling this method is more performant than calling `new FileInputStream(getFile())`.
      Returns:
        The input stream. Never returns null. The caller is responsible for closing this stream.

    - #### copyTo

          void copyTo(OutputStream outstr)

      Copies the content of this file to an output stream. Generally, calling this method is more performant than calling `new FileInputStream(getFile())`.
      Parameters:
        `outstr` - The output stream to write to. The caller is responsible for closing this stream.

    - #### copyTo

          boolean copyTo(File target)

      Copies this file to the given target file. Does not copy the file if the target is already a copy of this file.
      Parameters:
        `target` - the target file.
      Returns:
        true if this file was copied, false if it was up-to-date

    - #### getName

          String getName()

      Returns the base name of this file.
      Returns:
        The name. Never returns null.

    - #### getPath

          String getPath()

      Returns the path of this file, relative to the root of the containing file tree. Always uses '/' as the hierarchy separator, regardless of platform file separator. Same as calling `getRelativePath().getPathString()`.
      Returns:
        The path. Never returns null.

    - #### getRelativePath

          RelativePath getRelativePath()

      Returns the path of this file, relative to the root of the containing file tree.
      Returns:
        The path. Never returns null.

    - #### getMode

          int getMode()

      Returns the Unix permissions of this file, e.g. `0644`.
      Returns:
        The Unix file permissions.