Delete (Apache Ant API)
Date: 2016-08-23

org.apache.tools.ant.taskdefs

## Class Delete

- java.lang.Object
- - org.apache.tools.ant.ProjectComponent
  - - org.apache.tools.ant.Task
    - - org.apache.tools.ant.taskdefs.MatchingTask
      - - org.apache.tools.ant.taskdefs.Delete

- All Implemented Interfaces:
    java.lang.Cloneable, SelectorContainer

      public class Delete
      extends MatchingTask

  Deletes a file or directory, or set of files defined by a fileset. The original delete task would delete a file, or a set of files using the include/exclude syntax. The deltree task would delete a directory tree. This task combines the functionality of these two originally distinct tasks.

  Currently Delete extends MatchingTask. This is intended only to provide backwards compatibility for a release. The future position is to use nested filesets exclusively.

  Since:
    Ant 1.2

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.io.File` | `dir`
    `protected java.io.File` | `file`
    `protected java.util.Vector<FileSet>` | `filesets`
    `protected boolean` | `includeEmpty`
    `protected boolean` | `usedMatchingTask`

    - ### Fields inherited from class org.apache.tools.ant.taskdefs.MatchingTask

      `fileset`

    - ### Fields inherited from class org.apache.tools.ant.Task

      `target, taskName, taskType, wrapper`

    - ### Fields inherited from class org.apache.tools.ant.ProjectComponent

      `description, location, project`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Delete()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(FileSelector selector)` add an arbitrary selector
    `void` | `add(ResourceCollection rc)` Add an arbitrary ResourceCollection to be deleted.
    `void` | `addAnd(AndSelector selector)` add an "And" selector entry on the selector list
    `void` | `addContains(ContainsSelector selector)` add a contains selector entry on the selector list
    `void` | `addContainsRegexp(ContainsRegexpSelector selector)` add a regular expression selector entry on the selector list
    `void` | `addCustom(ExtendSelector selector)` add an extended selector entry on the selector list
    `void` | `addDate(DateSelector selector)` add a selector date entry on the selector list
    `void` | `addDepend(DependSelector selector)` add a depends selector entry on the selector list
    `void` | `addDepth(DepthSelector selector)` add a depth selector entry on the selector list
    `void` | `addFilename(FilenameSelector selector)` add a selector filename entry on the selector list
    `void` | `addFileset(FileSet set)` Adds a set of files to be deleted.
    `void` | `addMajority(MajoritySelector selector)` add a majority selector entry on the selector list
    `void` | `addModified(ModifiedSelector selector)` add the modified selector
    `void` | `addNone(NoneSelector selector)` add a "None" selector entry on the selector list
    `void` | `addNot(NotSelector selector)` add a "Not" selector entry on the selector list
    `void` | `addOr(OrSelector selector)` add an "Or" selector entry on the selector list
    `void` | `addPresent(PresentSelector selector)` add a present selector entry on the selector list
    `void` | `addSelector(SelectSelector selector)` add a "Select" selector entry on the selector list
    `void` | `addSize(SizeSelector selector)` add a selector size entry on the selector list
    `PatternSet.NameEntry` | `createExclude()` add a name entry on the exclude list
    `PatternSet.NameEntry` | `createExcludesFile()` add a name entry on the include files list
    `PatternSet.NameEntry` | `createInclude()` add a name entry on the include list
    `PatternSet.NameEntry` | `createIncludesFile()` add a name entry on the include files list
    `PatternSet` | `createPatternSet()` add a set of patterns
    `void` | `execute()` Delete the file(s).
    `protected void` | `removeDir(java.io.File d)` Delete a directory
    `protected void` | `removeFiles(java.io.File d, java.lang.String[] files, java.lang.String[] dirs)` remove an array of files in a directory, and a list of subdirectories which will only be deleted if 'includeEmpty' is true
    `void` | `setCaseSensitive(boolean isCaseSensitive)` Sets case sensitivity of the file system
    `void` | `setDefaultexcludes(boolean useDefaultExcludes)` Sets whether default exclusions should be used or not.
    `void` | `setDeleteOnExit(boolean deleteOnExit)` If true, on failure to delete, note the error and set the deleteonexit flag, and continue
    `void` | `setDir(java.io.File dir)` Set the directory from which files are to be deleted
    `void` | `setExcludes(java.lang.String excludes)` Sets the set of exclude patterns.
    `void` | `setExcludesfile(java.io.File excludesfile)` Sets the name of the file containing the includes patterns.
    `void` | `setFailOnError(boolean failonerror)` If false, note errors but continue.
    `void` | `setFile(java.io.File file)` Set the name of a single file to be removed.
    `void` | `setFollowSymlinks(boolean followSymlinks)` Sets whether or not symbolic links should be followed.
    `void` | `setIncludeEmptyDirs(boolean includeEmpty)` If true, delete empty directories.
    `void` | `setIncludes(java.lang.String includes)` Sets the set of include patterns.
    `void` | `setIncludesfile(java.io.File includesfile)` Sets the name of the file containing the includes patterns.
    `void` | `setPerformGcOnFailedDelete(boolean b)` Whether to perform a garbage collection before retrying a failed delete.
    `void` | `setQuiet(boolean quiet)` If true and the file does not exist, do not display a diagnostic message or modify the exit status to reflect an error.
    `void` | `setRemoveNotFollowedSymlinks(boolean b)` Sets whether the symbolic links that have not been followed shall be removed (the links, not the locations they point at).
    `void` | `setVerbose(boolean verbose)` If true, list all names of deleted files.

    - ### Methods inherited from class org.apache.tools.ant.taskdefs.MatchingTask

      `addDifferent, addType, appendSelector, getDirectoryScanner, getImplicitFileSet, getSelectors, hasSelectors, selectorCount, selectorElements, setProject, XsetIgnore, XsetItems`

    - ### Methods inherited from class org.apache.tools.ant.Task

      `bindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, init, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskType`

    - ### Methods inherited from class org.apache.tools.ant.ProjectComponent

      `clone, getDescription, getLocation, getProject, setDescription, setLocation`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### file

          protected java.io.File file

    - #### dir

          protected java.io.File dir

    - #### filesets

          protected java.util.Vector<FileSet> filesets

    - #### usedMatchingTask

          protected boolean usedMatchingTask

    - #### includeEmpty

          protected boolean includeEmpty

  - ### Constructor Detail

    - #### Delete

          public Delete()

  - ### Method Detail

    - #### setFile

          public void setFile(java.io.File file)

      Set the name of a single file to be removed.
      Parameters:
        `file` - the file to be deleted

    - #### setDir

          public void setDir(java.io.File dir)

      Set the directory from which files are to be deleted
      Parameters:
        `dir` - the directory path.

    - #### setVerbose

          public void setVerbose(boolean verbose)

      If true, list all names of deleted files.
      Parameters:
        `verbose` - "true" or "on"

    - #### setQuiet

          public void setQuiet(boolean quiet)

      If true and the file does not exist, do not display a diagnostic message or modify the exit status to reflect an error. This means that if a file or directory cannot be deleted, then no error is reported. This setting emulates the -f option to the Unix "rm" command. Default is false meaning things are "noisy"
      Parameters:
        `quiet` - "true" or "on"

    - #### setFailOnError

          public void setFailOnError(boolean failonerror)

      If false, note errors but continue.
      Parameters:
        `failonerror` - true or false

    - #### setDeleteOnExit

          public void setDeleteOnExit(boolean deleteOnExit)

      If true, on failure to delete, note the error and set the deleteonexit flag, and continue
      Parameters:
        `deleteOnExit` - true or false

    - #### setIncludeEmptyDirs

          public void setIncludeEmptyDirs(boolean includeEmpty)

      If true, delete empty directories.
      Parameters:
        `includeEmpty` - if true delete empty directories (only for filesets). Default is false.

    - #### setPerformGcOnFailedDelete

          public void setPerformGcOnFailedDelete(boolean b)

      Whether to perform a garbage collection before retrying a failed delete.

      This may be required on Windows (where it is set to true by default) but also on other operating systems, for example when deleting directories from an NFS share.

      Since:
        Ant 1.8.3

    - #### addFileset

          public void addFileset(FileSet set)

      Adds a set of files to be deleted.
      Parameters:
        `set` - the set of files to be deleted

    - #### add

          public void add(ResourceCollection rc)

      Add an arbitrary ResourceCollection to be deleted.
      Parameters:
        `rc` - the filesystem-only ResourceCollection.

    - #### createInclude

          public PatternSet.NameEntry createInclude()

      add a name entry on the include list
      Overrides:
        `createInclude` in class `MatchingTask`
      Returns:
        a NameEntry object to be configured

    - #### createIncludesFile

          public PatternSet.NameEntry createIncludesFile()

      add a name entry on the include files list
      Overrides:
        `createIncludesFile` in class `MatchingTask`
      Returns:
        an NameEntry object to be configured

    - #### createExclude

          public PatternSet.NameEntry createExclude()

      add a name entry on the exclude list
      Overrides:
        `createExclude` in class `MatchingTask`
      Returns:
        an NameEntry object to be configured

    - #### createExcludesFile

          public PatternSet.NameEntry createExcludesFile()

      add a name entry on the include files list
      Overrides:
        `createExcludesFile` in class `MatchingTask`
      Returns:
        an NameEntry object to be configured

    - #### createPatternSet

          public PatternSet createPatternSet()

      add a set of patterns
      Overrides:
        `createPatternSet` in class `MatchingTask`
      Returns:
        PatternSet object to be configured

    - #### setIncludes

          public void setIncludes(java.lang.String includes)

      Sets the set of include patterns. Patterns may be separated by a comma or a space.
      Overrides:
        `setIncludes` in class `MatchingTask`
      Parameters:
        `includes` - the string containing the include patterns

    - #### setExcludes

          public void setExcludes(java.lang.String excludes)

      Sets the set of exclude patterns. Patterns may be separated by a comma or a space.
      Overrides:
        `setExcludes` in class `MatchingTask`
      Parameters:
        `excludes` - the string containing the exclude patterns

    - #### setDefaultexcludes

          public void setDefaultexcludes(boolean useDefaultExcludes)

      Sets whether default exclusions should be used or not.
      Overrides:
        `setDefaultexcludes` in class `MatchingTask`
      Parameters:
        `useDefaultExcludes` - "true"|"on"|"yes" when default exclusions should be used, "false"|"off"|"no" when they shouldn't be used.

    - #### setIncludesfile

          public void setIncludesfile(java.io.File includesfile)

      Sets the name of the file containing the includes patterns.
      Overrides:
        `setIncludesfile` in class `MatchingTask`
      Parameters:
        `includesfile` - A string containing the filename to fetch the include patterns from.

    - #### setExcludesfile

          public void setExcludesfile(java.io.File excludesfile)

      Sets the name of the file containing the includes patterns.
      Overrides:
        `setExcludesfile` in class `MatchingTask`
      Parameters:
        `excludesfile` - A string containing the filename to fetch the include patterns from.

    - #### setCaseSensitive

          public void setCaseSensitive(boolean isCaseSensitive)

      Sets case sensitivity of the file system
      Overrides:
        `setCaseSensitive` in class `MatchingTask`
      Parameters:
        `isCaseSensitive` - "true"|"on"|"yes" if file system is case sensitive, "false"|"off"|"no" when not.

    - #### setFollowSymlinks

          public void setFollowSymlinks(boolean followSymlinks)

      Sets whether or not symbolic links should be followed.
      Overrides:
        `setFollowSymlinks` in class `MatchingTask`
      Parameters:
        `followSymlinks` - whether or not symbolic links should be followed

    - #### setRemoveNotFollowedSymlinks

          public void setRemoveNotFollowedSymlinks(boolean b)

      Sets whether the symbolic links that have not been followed shall be removed (the links, not the locations they point at).
      Since:
        Ant 1.8.0

    - #### addSelector

          public void addSelector(SelectSelector selector)

      add a "Select" selector entry on the selector list
      Specified by:
        `addSelector` in interface `SelectorContainer`
      Overrides:
        `addSelector` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added

    - #### addAnd

          public void addAnd(AndSelector selector)

      add an "And" selector entry on the selector list
      Specified by:
        `addAnd` in interface `SelectorContainer`
      Overrides:
        `addAnd` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added

    - #### addOr

          public void addOr(OrSelector selector)

      add an "Or" selector entry on the selector list
      Specified by:
        `addOr` in interface `SelectorContainer`
      Overrides:
        `addOr` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added

    - #### addNot

          public void addNot(NotSelector selector)

      add a "Not" selector entry on the selector list
      Specified by:
        `addNot` in interface `SelectorContainer`
      Overrides:
        `addNot` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added

    - #### addNone

          public void addNone(NoneSelector selector)

      add a "None" selector entry on the selector list
      Specified by:
        `addNone` in interface `SelectorContainer`
      Overrides:
        `addNone` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added

    - #### addMajority

          public void addMajority(MajoritySelector selector)

      add a majority selector entry on the selector list
      Specified by:
        `addMajority` in interface `SelectorContainer`
      Overrides:
        `addMajority` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added

    - #### addDate

          public void addDate(DateSelector selector)

      add a selector date entry on the selector list
      Specified by:
        `addDate` in interface `SelectorContainer`
      Overrides:
        `addDate` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added

    - #### addSize

          public void addSize(SizeSelector selector)

      add a selector size entry on the selector list
      Specified by:
        `addSize` in interface `SelectorContainer`
      Overrides:
        `addSize` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added

    - #### addFilename

          public void addFilename(FilenameSelector selector)

      add a selector filename entry on the selector list
      Specified by:
        `addFilename` in interface `SelectorContainer`
      Overrides:
        `addFilename` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added

    - #### addCustom

          public void addCustom(ExtendSelector selector)

      add an extended selector entry on the selector list
      Specified by:
        `addCustom` in interface `SelectorContainer`
      Overrides:
        `addCustom` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added

    - #### addContains

          public void addContains(ContainsSelector selector)

      add a contains selector entry on the selector list
      Specified by:
        `addContains` in interface `SelectorContainer`
      Overrides:
        `addContains` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added

    - #### addPresent

          public void addPresent(PresentSelector selector)

      add a present selector entry on the selector list
      Specified by:
        `addPresent` in interface `SelectorContainer`
      Overrides:
        `addPresent` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added

    - #### addDepth

          public void addDepth(DepthSelector selector)

      add a depth selector entry on the selector list
      Specified by:
        `addDepth` in interface `SelectorContainer`
      Overrides:
        `addDepth` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added

    - #### addDepend

          public void addDepend(DependSelector selector)

      add a depends selector entry on the selector list
      Specified by:
        `addDepend` in interface `SelectorContainer`
      Overrides:
        `addDepend` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added

    - #### addContainsRegexp

          public void addContainsRegexp(ContainsRegexpSelector selector)

      add a regular expression selector entry on the selector list
      Specified by:
        `addContainsRegexp` in interface `SelectorContainer`
      Overrides:
        `addContainsRegexp` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added

    - #### addModified

          public void addModified(ModifiedSelector selector)

      add the modified selector
      Specified by:
        `addModified` in interface `SelectorContainer`
      Overrides:
        `addModified` in class `MatchingTask`
      Parameters:
        `selector` - the selector to add
      Since:
        ant 1.6

    - #### add

          public void add(FileSelector selector)

      add an arbitrary selector
      Specified by:
        `add` in interface `SelectorContainer`
      Overrides:
        `add` in class `MatchingTask`
      Parameters:
        `selector` - the selector to be added
      Since:
        Ant 1.6

    - #### execute

          public void execute()
                       throws BuildException

      Delete the file(s).
      Overrides:
        `execute` in class `Task`
      Throws:
        `BuildException` - if an error occurs

    - #### removeDir

          protected void removeDir(java.io.File d)

      Delete a directory
      Parameters:
        `d` - the directory to delete

    - #### removeFiles

          protected void removeFiles(java.io.File d,
                                     java.lang.String[] files,
                                     java.lang.String[] dirs)

      remove an array of files in a directory, and a list of subdirectories which will only be deleted if 'includeEmpty' is true
      Parameters:
        `d` - directory to work from
        `files` - array of files to delete; can be of zero length
        `dirs` - array of directories to delete; can of zero length