- Home ›
- Apache Antの使い方 ›
- Deleteタスク(削除) ›
- HERE
deleteタスク
ここではファイルやディレクトリを削除する方法について見ていきます。「delete」タスクを使います。
基本となるのは下記の属性です。
属性 | 説明 | 必須 |
---|---|---|
file | 削除するファイルです。単純なファイル名(ファイルが現在のベースディレクトリに存在する場合)、相対パスのファイル名、またはフルパスのファイル名、のいずれかを指定します。 | fileかdirのどちらかが必須 |
dir | 削除するディレクトリです。ディレクトリ内のファイルとサブディレクトリをすべて含みます。 | fileかdirのどちらかが必須 |
verbose | 削除された各ファイルの名前を表示します ("true"/"false" で指定します)。省略した場合のデフォルトは "false" です。 | × |
includeEmptyDirs | fileset を使用している場合、"true" にセットすると、空のディレクトリを削除します。デフォルトは "false" です。 | × |
defaultexcludes | デフォルト除外集合を使用するかどうか("yes"/"no")を示します。省略した場合、デフォルト除外集合が使用されます。 | × |
削除するファイル又はディレクトリを「file」属性又は「dir」属性で指定します。ディレクトリを削除する場合、デフォルトでは空のディレクトリは削除されません。空のディレクトリを削除する場合には「includeEmptyDirs」属性を「true」に設定します。
「defaultexcludes」属性はデフォルト除外パターンを使うかどうかを指定します。デフォルトでは使うことになっています。デフォルト除外パターンというのは下記になります。
**/*~ **/#*# **/.#* **/%*% **/._* **/CVS **/CVS/** **/.cvsignore **/SCCS **/SCCS/** **/vssver.scc **/.svn **/.svn/** **/.DS_Store
このデフォルト除外パターンに該当するファイルは削除が行われないため注意して下さい。無効にしたい場合には「defaultexcludes」属性に「no」を指定して下さい。
実際の利用方法としては例えば下記のように記述します。
<delete file="./class/test.class"/>
この場合は特定のファイルを削除します。またディレクトリ(及びそのディレクトリに含まれる全てのファイルとサブディレクトリ)を削除する場合は下記のように記述します。
<delete dir="./class"/>
では実際に試してみましょう。構成は下記の通りです。
-sample8 build.xml | +--back test.class.bak sample1.class.bak sample2.class.bak
まず「back」ディレクトリにある「test.class.bak」ファイルを削除してみます。その後で「back」ディレクトリを削除してみます。
ビルドファイルは下記です。
<?xml version="1.0" encoding="Shift_JIS"?> <project name="antsample" default="delete"> <target name="delete"> <delete file="./back/test.class.bak"/> </target> <target name="deleteall"> <delete dir="./back" verbose="true"/> </target> </project>
まずは「delete」ターゲットを対象にantを実行してみます。
指定したファイルが削除されているのが確認できます。
次に「back」ディレクトリを削除してみます。
「back」ディレクトリが削除されていることが確認できます。また「deleteall」ターゲットの方では「delete」タスクの中で「verbose」要素を「true」に設定しているため、実際に削除されたファイルが画面に表示されています。
( Written by Tatsuo Ikura )