<fileset>による削除ファイルの指定

広告

前のページの削除するファイルを「file」属性又は「dir」属性で指定していましたが、<fileset>要素を使って削除するファイルを指定することが出来ます。

<fileset>について詳細は『<fileset>によるコピー元ファイルの指定』を参照して下さい。

例えば「class」ディレクトリに含まれる全てのファイルを削除する場合は下記のようになります。

<delete>
  <fileset dir="./class" />
</delete>

全てのファイルではなく、特定のファイルを指定する場合には「includes」属性を使います。例えばクラスファイルだけを対象にする場合には下記のようになります。

<delete>
  <fileset dir="./class" includes="*.class" />
</delete>

ファイルの集合から除外したいファイルを指定するには「excludes」属性を使います。例えばクラスファイルは対象から外す場合には下記のようになります。

<delete>
  <fileset dir="./class" includes="*.class" />
</delete>

他にも<include>要素と<exclude>要素などを使っても指定可能です。詳しくは『<fileset>によるコピー元ファイルの指定』を参照して下さい。

では実際に試してみましょう。構成は下記の通りです。

-sample8     build.xml
  |
  +--back    test.java
             sample1.java
             sample2.java
             test.class.bak
             sample1.class.bak
             sample2.class.bak

「back」ディレクトリにある拡張子「.bak」のファイルを削除してみます。ただし「test.class.bak」は削除しません。

ビルドファイルは下記です。

build2.xml

<?xml version="1.0" encoding="Shift_JIS"?>

<project name="antsample" default="delete">

  <target name="delete">
    <delete verbose="true">
      <fileset dir="./back"
               includes="*.class.bak"
               excludes="test*"
      />
    </delete>
  </target>

</project>

antを実行してみます。

AntでのDeleteタスク

指定したファイルだけが削除されているのが確認できます。

( Written by Tatsuo Ikura )