删除单个文件、指定目录及其所有文件和子目录,或由一个或多个 资源集合 指定的一组文件。<fileset>
的字面含义是不包含目录;但是,当使用嵌套文件集时,通过将 includeEmptyDirs 属性设置为 true
可以触发删除空目录。请注意,此属性在包含目录的各种资源集合类型的上下文中没有意义,但在任何情况下都不会尝试删除非空目录。目录是否为空是通过查看文件系统来决定的——包含或排除模式不适用于此。
如果您使用此任务删除编辑器创建的临时文件,但它似乎不起作用,请阅读基于目录的任务中的 默认排除集,并查看下面的 defaultexcludes
属性。
出于历史原因,<delete dir="x"/>
与 <delete><fileset dir="x"/></delete>
不同;它将尝试删除 x
内的所有内容,包括 x
本身,不考虑默认排除,盲目地遵循所有符号链接。如果您需要更多控制,请使用嵌套的 <fileset>
。
属性 | 描述 | 必需 |
---|---|---|
文件 | 要删除的文件,指定为简单文件名(如果文件存在于当前基本目录中)、相对路径文件名或完整路径文件名。 | 至少两个中的一个,除非指定了嵌套资源集合 |
目录 | 要删除的目录,包括其所有文件和子目录。 注意:dir 不用于指定 file 的目录名;file 和 dir 是相互独立的。 警告:除非您确实打算递归地删除当前基本目录的整个内容(以及基本目录本身,如果与当前工作目录不同),否则不要将 dir 设置为 .、 ${basedir}或完整路径名等效项。 |
|
详细 | 是否显示每个已删除文件的名称。 | 否;默认 false |
安静 | 如果指定的文件或目录不存在,则不显示诊断消息(除非 Apache Ant 已使用 -verbose 或 -debug 开关调用)或修改退出状态以反映错误。当设置为 true时,如果无法删除文件或目录,则不会报告错误。此设置模拟了 Unix rm 命令的 -f 选项。将其设置为 true意味着将 failonerror 设置为 false。 |
否;默认 false |
出错停止 | 控制错误(例如无法删除文件)是否停止构建或仅报告到屏幕。仅当 quiet 为 false时才相关。 |
否;默认 true |
包含空目录 | 使用文件集时是否删除空目录。 | 否;默认 false |
包含 | 已弃用。使用资源集合。必须删除的文件模式的逗号或空格分隔列表。所有文件相对于 dir 中指定的目录。 | 否 |
包含文件 | 已弃用。使用资源集合。文件名;此文件的每一行都被视为包含模式。 | 否 |
排除 | 已弃用。使用资源集合。必须从删除列表中排除的文件模式的逗号或空格分隔列表。所有文件相对于 dir 中指定的目录。 | 否;默认为默认排除或无,如果 defaultexcludes 为 no |
排除文件 | 已弃用。使用资源集合。文件名;此文件的每一行都被视为排除模式 | 否 |
默认排除 | 已弃用。使用资源集合。是否使用 默认排除。 | 否;默认 true |
退出时删除 | 指示如果无法删除文件,是否使用 File#deleteOnExit() 。这会导致 JVM 在 JVM 进程终止时尝试删除文件。自 Ant 1.6.2 起 |
否;默认 false |
删除未跟随的符号链接 | 如果符号链接(而不是它们链接到的文件/目录)由于 followSymlinks 为 false或符号链接的最大数量太大而未被跟随,是否应删除它们。自 Ant 1.8.0 起 |
否;默认 false |
在删除失败时执行 GC | 如果 Ant 无法删除文件或目录,它将重试该操作一次。如果此标志设置为 true,它将在重试删除之前执行垃圾回收。 将此标志设置为 true 已知可以解决 Windows 上的一些问题(在 Windows 上默认为 true),但也适用于位于 NFS 共享上的目录树。自 Ant 1.8.3 起 |
否;在 Windows 上默认为 true,在任何其他操作系统上默认为 true |
删除文件 /lib/ant.jar。
<delete file="/lib/ant.jar"/>
删除 lib 目录,包括 lib 的所有文件和子目录。
<delete dir="lib"/>
从当前目录及其任何子目录中删除所有扩展名为 .bak 的文件。
<delete> <fileset dir="." includes="**/*.bak"/> </delete>
删除 build 的所有文件和子目录,包括 build 本身。
<delete includeEmptyDirs="true"> <fileset dir="build"/> </delete>
删除 build 的所有文件和子目录,但不包括 build 本身。
<delete includeemptydirs="true"> <fileset dir="build" includes="**/*"/> </delete>
删除 src 下的 Subversion 元数据目录。因为 .svn 是 默认排除 之一,所以您必须使用 defaultexcludes 标志,否则 Ant 不会删除这些目录及其中的文件。
<delete includeemptydirs="true"> <fileset dir="src" includes="**/.svn/" defaultexcludes="false"/> </delete>