|
- <!DOCTYPE html>
- <!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
- <html lang="en">
-
- <head>
- <link rel="stylesheet" type="text/css" href="../stylesheets/style.css">
- <title>Delete Task</title>
- </head>
-
- <body>
-
- <h2 id="delete">Delete</h2>
- <h3>Description</h3>
- <p>Deletes a single file, a specified directory and all its files and subdirectories, or a set of
- files specified by one or more <a href="../Types/resources.html#collection">resource
- collection</a>s. The literal implication of <code><fileset></code> is that directories are
- not included; however the removal of empty directories can be triggered when using nested filesets
- by setting the <var>includeEmptyDirs</var> attribute to <q>true</q>. Note that this attribute is
- meaningless in the context of any of the various resource collection types that <em>do</em> 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.</p>
- <p>If you use this task to delete temporary files created by editors and it doesn't seem to work,
- read up on the <a href="../dirtasks.html#defaultexcludes">default exclusion set</a>
- in <strong>Directory-based Tasks</strong>, and see the <code>defaultexcludes</code> attribute
- below.</p>
-
- <p>For historical reasons <code><delete dir="x"/></code> is different
- from <code><delete><fileset dir="x"/></delete></code>; it will try to remove
- everything inside <q>x</q> including <q>x</q> itself, not taking default excludes into account,
- blindly following all symbolic links. If you need more control, use a
- nested <code><fileset></code>.</p>
-
- <h3>Parameters</h3>
- <table class="attr">
- <tr>
- <th scope="col">Attribute</th>
- <th scope="col">Description</th>
- <th scope="col">Required</th>
- </tr>
- <tr>
- <td>file</td>
- <td>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.</td>
- <td rowspan="2">At least one of the two, unless nested resource collections are specified</td>
- </tr>
- <tr>
- <td>dir</td>
- <td class="left">The directory to delete, including all its files and
- subdirectories.<br/><strong>Note</strong>: <var>dir</var> is <em>not</em> used to specify a
- directory name for <var>file</var>; <var>file</var> and <var>dir</var> are independent of each
- other.<br/><strong>Warning</strong>: Do <strong>not</strong> set <var>dir</var>
- to <q>.</q>, <q>${basedir}</q>, or the full-pathname equivalent unless you
- truly <em>intend</em> to recursively remove the entire contents of the current base directory
- (and the base directory itself, if different from the current working directory).</td>
- </tr>
- <tr>
- <td>verbose</td>
- <td>Whether to show the name of each deleted file.</td>
- <td>No; default <q>false</q></td>
- </tr>
- <tr>
- <td>quiet</td>
- <td>If the specified file or directory does not exist, do not display a diagnostic message
- (unless Apache Ant has been invoked with the <kbd>-verbose</kbd> or <kbd>-debug</kbd>
- switches) or modify the exit status to reflect an error. When set to <q>true</q>, if a file
- or directory cannot be deleted, no error is reported. This setting emulates
- the <kbd>-f</kbd> option to the Unix <em>rm</em> command. Setting this to <q>true</q>
- implies setting <var>failonerror</var> to <q>false</q>.</td>
- <td>No; default <q>false</q></td>
- </tr>
- <tr>
- <td>failonerror</td>
- <td>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 <code>quiet</code> is <q>false</q>.</td>
- <td>No; default <q>true</q></td>
- </tr>
- <tr>
- <td>includeemptydirs</td>
- <td>Whether to delete empty directories when using filesets.</td>
- <td>No; default <q>false</q></td>
- </tr>
- <tr>
- <td>includes</td>
- <td><em><u>Deprecated</u></em>. 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 <var>dir</var>.</td>
- <td>No</td>
- </tr>
- <tr>
- <td>includesfile</td>
- <td><em><u>Deprecated</u></em>. Use resource collections. Name of a file; each line of this
- file is taken to be an include pattern.</td>
- <td>No</td>
- </tr>
- <tr>
- <td>excludes</td>
- <td><em><u>Deprecated</u></em>. 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 <var>dir</var>.</td>
- <td>No; defaults to default excludes or none if <var>defaultexcludes</var> is <q>no</q></td>
- </tr>
- <tr>
- <td>excludesfile</td>
- <td><em><u>Deprecated</u></em>. Use resource collections. Name of a file; each line of this
- file is taken to be an exclude pattern</td>
- <td>No</td>
- </tr>
- <tr>
- <td>defaultexcludes</td>
- <td><em><u>Deprecated</u></em>. Use resource collections. Whether to
- use <a href="../dirtasks.html#defaultexcludes">default excludes.</a></td>
- <td>No; default <q>true</q></td>
- </tr>
- <tr>
- <td>deleteonexit</td>
- <td>Indicates whether to use <code>File#deleteOnExit()</code> 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. <em>Since Ant 1.6.2</em></td>
- <td>No; default <q>false</q></td>
- </tr>
- <tr>
- <td>removeNotFollowedSymlinks</td>
- <td>Whether symbolic links (not the files/directories they link to) should be removed if they
- haven't been followed because <var>followSymlinks</var> was <q>false</q> or the maximum number
- of symbolic links was too big. <em>Since Ant 1.8.0</em></td>
- <td>No; default <q>false</q></td>
- </tr>
- <tr>
- <td>performGCOnFailedDelete</td>
- <td>If Ant fails to delete a file or directory it will retry the operation once. If this flag
- is set to <q>true</q> it will perform a garbage collection before retrying the
- delete.<br/>Setting this flag to true is known to resolve some problems on Windows (where it
- defaults to <q>true</q>) but also for directory trees residing on an NFS share. <em>Since Ant
- 1.8.3</em></td>
- <td>No; default <q>true</q> on Windows and <q>true</q> on any other OS</td>
- </tr>
- </table>
-
- <h3>Examples</h3>
-
- <p>Delete the file <samp>/lib/ant.jar</samp>.</p>
- <pre><delete file="/lib/ant.jar"/></pre>
-
- <p>Delete the <samp>lib</samp> directory, including all files and subdirectories
- of <samp>lib</samp>.</p>
- <pre><delete dir="lib"/></pre>
-
- <p>Delete all files with the extension <samp>.bak</samp> from the current directory and any
- subdirectories.</p>
- <pre>
- <delete>
- <fileset dir="." includes="**/*.bak"/>
- </delete>
- </pre>
-
- <p>Delete all files and subdirectories of <samp>build</samp>, including <samp>build</samp>
- itself.</p>
- <pre>
- <delete includeEmptyDirs="true">
- <fileset dir="build"/>
- </delete>
- </pre>
-
- <p>Delete all files and subdirectories of <samp>build</samp>, without <samp>build</samp> itself.</p>
- <pre>
- <delete includeemptydirs="true">
- <fileset dir="build" includes="**/*"/>
- </delete>
- </pre>
-
- <p>Delete the Subversion metadata directories under <samp>src</samp>. Because <samp>.svn</samp> is
- on of the <a href="../dirtasks.html#defaultexcludes">default excludes</a> you have to use
- the <var>defaultexcludes</var> flag, otherwise Ant won't delete these directories and the files in
- it.</p>
- <pre>
- <delete includeemptydirs="true">
- <fileset dir="src" includes="**/.svn/" defaultexcludes="false"/>
- </delete>
- </pre>
-
- </body>
- </html>
|