1. 程式人生 > >Ant內建任務之delete

Ant內建任務之delete

一、概述

        delete是Ant內建任務,用於刪除單個檔案,一個指定目錄的所有檔案及其子目錄,或者一到多個資源集合指定的檔案。fileset從字面上看是不包括目錄的,但是在使用巢狀的檔案集元素時可以通過將includeEmptyDirs屬性設定為true,來刪除空目錄。但是這個屬性對於任何包含目錄的資源集合型別中是無意義的,在任何情況下都不會刪除空目錄。目錄是否為空是通過檢視檔案系統決定的。由於歷史原因,<delete dir="x"/>和<delete><fileset dir="x"/></delete>是不同的,它會刪除包括x在內的所有檔案和目錄,即使是

預設排除列表匹配的檔案或目錄。如果需要更多的控制,則需要內嵌fileset。

二、屬性

        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>