Ant內建任務之delete
一、概述
delete是Ant內建任務,用於刪除單個檔案,一個指定目錄的所有檔案及其子目錄,或者一到多個資源集合指定的檔案。fileset從字面上看是不包括目錄的,但是在使用巢狀的檔案集元素時可以通過將includeEmptyDirs屬性設定為true,來刪除空目錄。但是這個屬性對於任何包含目錄的資源集合型別中是無意義的,在任何情況下都不會刪除空目錄。目錄是否為空是通過檢視檔案系統決定的。由於歷史原因,<delete
dir="x"/>和<delete><fileset dir="x"/></delete>是不同的,它會刪除包括x在內的所有檔案和目錄,即使是
二、屬性
file:要刪除的檔案,可以指定為簡單的檔名(在當前基本目錄下),相對路徑的檔名,或者全路徑的檔名。
dir:要刪除的目錄,包括所有的檔案和子目錄。dir屬性不是用來指定file所在目錄的,dir與file屬性是相互獨立的。不要將dir設定為“.”,“${basedir}”,或者等效的全路徑名,除非真的要遞迴刪除當前基本目錄下的所有內容及基本目錄本身。
verbose:是否顯示每一個刪除的檔案,預設為false。
quiet:如果指定的目錄不存在,不顯示診斷資訊,或者反應錯誤的修改退出狀態,除非ant呼叫時使用了-verbose或者-debug,預設為false。設定為true時,如果檔案或目錄不能刪除,不會報告任何錯誤。如果設定true等於將failonerror設定為false。
failonerror:用來控制當出現錯誤時,是停止構建還是僅僅將錯誤輸出到控制檯。當為true時,會停止構建,否則會輸出錯誤資訊,預設為true。
includeemptydirs:當使用fileset時,是否刪除空目錄,預設為false。
deleteonexit:從Ant1.6.2起,如果刪除檔案失敗,是否使用File的deleteOnExit方法。當設定為true時,JVM程序終止時會嘗試刪除檔案。預設為false。
removeNotFollowedSymlinks:從Ant1.8起,如果followSymlinks設定為false或者符號連結的最大數量太大,是否刪除符號連結(不刪除它們所連結的檔案或目錄)。預設為false。
performGCOnFailedDelete:當ant刪除檔案失敗後,會重新操作一次。如果設定為true,會在重新操作之前執行一次垃圾回收。從1.8.3起,將這個屬性設定為true可以解決Windows和NFS共享目錄樹的一些問題。
三、簡單示例
<project>
<delete file="../tmpcopy/filter.txt" />
<delete dir="../tmpcopy/afterfilter" />
<delete includeEmptyDirs="true" failonerror="failonerror">
<fileset dir="../tmpcopy/new"/>
</delete>
</project>