刪除

說明

刪除單一檔案、指定的目錄及其所有檔案和子目錄,或由一個或多個 資源集合 指定的檔案集合。<fileset> 的字面含義是目錄不包含在內;然而,在使用巢狀檔案集時,透過將 includeEmptyDirs 屬性設定為 true,可以觸發刪除空目錄。請注意,此屬性在各種 包含目錄的資源集合類型中沒有意義,但在任何情況下都不會嘗試刪除非空目錄。目錄是否為空是透過查看檔案系統來決定,包含或排除模式在此不適用。

如果您使用此任務來刪除編輯器建立的暫時檔案,但似乎沒有作用,請閱讀 基於目錄的任務 中的 預設排除集,並參閱下方的 defaultexcludes 屬性。

由於歷史原因,<delete dir="x"/><delete><fileset dir="x"/></delete> 不同;它會嘗試移除 x 內部的一切,包括 x 本身,不考慮預設排除,盲目追隨所有符號連結。如果您需要更多控制,請使用巢狀 <fileset>

參數

屬性 說明 必填
file 要刪除的檔案,指定為單純檔名(如果檔案存在於目前的基礎目錄)、相對路徑檔名或完整路徑檔名。 除非指定巢狀資源集合,否則兩個中至少要有一個
dir 要刪除的目錄,包括其所有檔案和子目錄。
注意dir 不會 用於為 file 指定目錄名稱;filedir 彼此獨立。
警告:除非您真的打算遞迴移除目前基本目錄的全部內容(以及基本目錄本身,如果與目前工作目錄不同),否則不要dir 設定為 .${basedir} 或等效的完整路徑。
verbose 是否顯示每個已刪除檔案的名稱。 否;預設 false
quiet 如果指定的檔案或目錄不存在,請勿顯示診斷訊息(除非已使用 -verbose-debug 開關呼叫 Apache Ant)或修改結束狀態以反映錯誤。設定為 true 時,如果無法刪除檔案或目錄,將不會報告錯誤。此設定模擬 Unix rm 指令的 -f 選項。將此設定為 true 表示將 failonerror 設定為 false 否;預設 false
failonerror 控制錯誤(例如無法刪除檔案)是否會停止建置或僅報告至螢幕。僅在 quietfalse 時才相關。 否;預設 true
includeemptydirs 使用檔案集時是否刪除空目錄。 否;預設 false
includes 已棄用。使用資源集合。必須刪除的檔案範本的逗號或空格分隔清單。所有檔案都相對於 dir 中指定的目錄。
includesfile 已棄用。使用資源集合。檔案名稱;此檔案的每一行都被視為包含範本。
excludes 已棄用。使用資源集合。必須從刪除清單中排除的檔案範本的逗號或空格分隔清單。所有檔案都相對於 dir 中指定的目錄。 否;如果 defaultexcludesno,則預設為預設排除或無
excludesfile 已棄用。使用資源集合。檔案名稱;此檔案的每一行都被視為排除範本
defaultexcludes 已棄用。使用資源集合。是否使用 預設排除 否;預設 true
deleteonexit 表示如果無法刪除檔案,是否使用 File#deleteOnExit()。這會導致 JVM 在 JVM 程序終止時嘗試刪除檔案。自 Ant 1.6.2 起 否;預設 false
removeNotFollowedSymlinks 如果符號連結(不是它們連結到的檔案/目錄)未被遵循,因為 followSymlinksfalse 或符號連結的最大數量太大,是否應移除它們。自 Ant 1.8.0 起 否;預設 false
performGCOnFailedDelete 如果 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>