刪除單一檔案、指定的目錄及其所有檔案和子目錄,或由一個或多個 資源集合 指定的檔案集合。<fileset>
的字面含義是目錄不包含在內;然而,在使用巢狀檔案集時,透過將 includeEmptyDirs 屬性設定為 true
,可以觸發刪除空目錄。請注意,此屬性在各種 會 包含目錄的資源集合類型中沒有意義,但在任何情況下都不會嘗試刪除非空目錄。目錄是否為空是透過查看檔案系統來決定,包含或排除模式在此不適用。
如果您使用此任務來刪除編輯器建立的暫時檔案,但似乎沒有作用,請閱讀 基於目錄的任務 中的 預設排除集,並參閱下方的 defaultexcludes
屬性。
由於歷史原因,<delete dir="x"/>
與 <delete><fileset dir="x"/></delete>
不同;它會嘗試移除 x
內部的一切,包括 x
本身,不考慮預設排除,盲目追隨所有符號連結。如果您需要更多控制,請使用巢狀 <fileset>
。
屬性 | 說明 | 必填 |
---|---|---|
file | 要刪除的檔案,指定為單純檔名(如果檔案存在於目前的基礎目錄)、相對路徑檔名或完整路徑檔名。 | 除非指定巢狀資源集合,否則兩個中至少要有一個 |
dir | 要刪除的目錄,包括其所有檔案和子目錄。 注意:dir 不會 用於為 file 指定目錄名稱;file 和 dir 彼此獨立。 警告:除非您真的打算遞迴移除目前基本目錄的全部內容(以及基本目錄本身,如果與目前工作目錄不同),否則不要將 dir 設定為 .、 ${basedir}或等效的完整路徑。 |
|
verbose | 是否顯示每個已刪除檔案的名稱。 | 否;預設 false |
quiet | 如果指定的檔案或目錄不存在,請勿顯示診斷訊息(除非已使用 -verbose 或 -debug 開關呼叫 Apache Ant)或修改結束狀態以反映錯誤。設定為 true時,如果無法刪除檔案或目錄,將不會報告錯誤。此設定模擬 Unix rm 指令的 -f 選項。將此設定為 true表示將 failonerror 設定為 false。 |
否;預設 false |
failonerror | 控制錯誤(例如無法刪除檔案)是否會停止建置或僅報告至螢幕。僅在 quiet 為 false時才相關。 |
否;預設 true |
includeemptydirs | 使用檔案集時是否刪除空目錄。 | 否;預設 false |
includes | 已棄用。使用資源集合。必須刪除的檔案範本的逗號或空格分隔清單。所有檔案都相對於 dir 中指定的目錄。 | 否 |
includesfile | 已棄用。使用資源集合。檔案名稱;此檔案的每一行都被視為包含範本。 | 否 |
excludes | 已棄用。使用資源集合。必須從刪除清單中排除的檔案範本的逗號或空格分隔清單。所有檔案都相對於 dir 中指定的目錄。 | 否;如果 defaultexcludes 為 no,則預設為預設排除或無 |
excludesfile | 已棄用。使用資源集合。檔案名稱;此檔案的每一行都被視為排除範本 | 否 |
defaultexcludes | 已棄用。使用資源集合。是否使用 預設排除。 | 否;預設 true |
deleteonexit | 表示如果無法刪除檔案,是否使用 File#deleteOnExit() 。這會導致 JVM 在 JVM 程序終止時嘗試刪除檔案。自 Ant 1.6.2 起 |
否;預設 false |
removeNotFollowedSymlinks | 如果符號連結(不是它們連結到的檔案/目錄)未被遵循,因為 followSymlinks 為 false或符號連結的最大數量太大,是否應移除它們。自 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>