Deletes a single file, a specified directory and all its files and
subdirectories, or a set of files specified by one or more
resource collections.
The literal implication of <fileset>
is that
directories are not included; however the removal of empty directories can
be triggered when using nested filesets by setting the
includeEmptyDirs
attribute to true. Note that this
attribute is meaningless in the context of any of the various resource
collection types that do include directories, but that no attempt
will be made to delete non-empty directories in any case. Whether a
directory is empty or not is decided by looking into the filesystem -
include or exclude patterns don't apply here.
If you use this task to delete temporary files created by editors
and it doesn't seem to work, read up on the
default exclusion set
in Directory-based Tasks, and see the
defaultexcludes
attribute below.
For historical reasons <delete dir="x"/>
is
different from <delete><fileset
dir="x"/></delete>
, it will try to remove everything
inside "x" including "x" itself, not taking default excludes into
account, blindly following all symbolic links. If you need more
control, use a nested <fileset>
.
Attribute | Description | Required |
file | The file to delete, specified as either the simple filename (if the file exists in the current base directory), a relative-path filename, or a full-path filename. | At least one of the two, unless nested resource collections are specified |
dir | The directory to delete, including all its files and
subdirectories. Note: dir is not used
to specify a directory name for file ; file
and dir are independent of each other.WARNING: Do not set dir to
"." , "${basedir}" ,
or the full-pathname equivalent unless you truly intend to
recursively remove the entire contents of the current base directory
(and the base directory itself, if different from the current working
directory). |
|
verbose | Whether to show the name of each deleted file. | No, default "false" |
quiet | If the specified file or directory does not exist,
do not display a diagnostic message (unless Apache Ant
has been invoked with the -verbose or
-debug switches) or modify the exit status to
reflect an error.
When set to "true", if a file or directory cannot be deleted,
no error is reported. This setting emulates the
-f option to the Unix rm command.
Setting this to "true" implies setting
failonerror to "false".
|
No, default "false" |
failonerror | Controls whether an error (such as a failure to
delete a file) stops the build or is merely reported to the screen.
Only relevant if quiet is "false". |
No, default "true" |
includeemptydirs | Whether to delete empty directories when using filesets. | No, default "false" |
includes | Deprecated. Use resource collections.
Comma- or space-separated list of patterns of
files that must be deleted. All files are relative to the directory
specified in dir . |
No |
includesfile | Deprecated. Use resource collections. The name of a file. Each line of this file is taken to be an include pattern. | No |
excludes | Deprecated. Use resource collections.
Comma- or space-separated list of patterns of
files that must be excluded from the deletion list.
All files are relative to the directory specified in dir .
No files (except default excludes) are excluded when omitted. |
No |
excludesfile | Deprecated. Use resource collections. The name of a file. Each line of this file is taken to be an exclude pattern | No |
defaultexcludes | Deprecated. Use resource collections. Whether to use default excludes. | No, default "true" |
deleteonexit | Indicates whether to use File#deleteOnExit() if there is a failure to delete a file, this causes the jvm to attempt to delete the file when the jvm process is terminating. Since Ant 1.6.2 | No, default "false" |
removeNotFollowedSymlinks | Whether symbolic links (not the files/directories they link to) should be removed if they haven't been followed because followSymlinks was false or the maximum number of symbolic links was too big. Since Ant 1.8.0 | No, default "false" |
<delete file="/lib/ant.jar"/>
deletes the file /lib/ant.jar
.
<delete dir="lib"/>
deletes the lib
directory, including all files
and subdirectories of lib
.
<delete> <fileset dir="." includes="**/*.bak"/> </delete>
deletes all files with the extension .bak
from the current directory
and any subdirectories.
<delete includeEmptyDirs="true"> <fileset dir="build"/> </delete>
deletes all files and subdirectories of build
, including
build
itself.
<delete includeemptydirs="true"> <fileset dir="build" includes="**/*"/> </delete>
deletes all files and subdirectories of build
, without
build
itself.
<delete includeemptydirs="true"> <fileset dir="src" includes="**/.svn" defaultexcludes="false"/> </delete>
deletes the subversion metadata directories under src
. Because .svn
is on of the default excludes you have to use the
defaultexcludes
flag, otherwise Ant wont delete these directories and the files in it.