プロが教えるわが家の防犯対策術!

いつもお世話になります。

Antで指定した複数のフォルダを一括で削除するということを実現したいのですが、例えば、下記のフォルダ構成があったとします。

C:
 \parent
  \a
  \b
  \c
  \d
  ・・・
(Cドライブ直下のparentフォルダ配下に、複数のフォルダがあります。)

この状態で、parentフォルダ直下のa、b、cの3つのフォルダのみをフォルダ毎削除したいのです。
それぞれのフォルダに対してdeleteタスクを記述する方法もありますが、もっと簡潔に記述することは可能でしょうか。
(例えばfilesetやdirsetなどを用いるなどして)

使用しているAntのバージョンは1.8.0です。
宜しくお願いします。

A 回答 (3件)

リロードしていなかったので再補足する。


それなら、
<delete verbose="true" includeemptydirs="true">
<fileset dir="C:/parent" includes="a/**,b/**,c/**"/>
</delete>
で。
    • good
    • 0

補足しておく。


質問者の例であれば、書き方は色々あると思うが、たとえば、
<delete verbose="true" includeemptydirs="true">
<fileset dir="C:/parent">
<include name="a/**"/>
<include name="b/**"/>
<include name="c/**"/>
</fileset>
</delete>
で、a,b,cだけをディレクトリごと削除できると思う。
includeemptydirs属性は空のディレクトリの場合も削除するため。
    • good
    • 0

普通にfilesetで指定してひとつのdeleteタスクで削除できる。


参考URLを参照のこと。

参考URL:http://ant.apache.org/manual/CoreTasks/delete.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

実現したいのは、複数の指定したフォルダのみの削除です。
質問であげた例で言いますと、C:\parentフォルダ直下のa、b、cの3つのフォルダのみ削除したいのですが、
このフォルダ配下には、他にもd、eなどの削除したくないフォルダも存在します。あるフォルダ配下の、削除したいフォルダ、
そうでないフォルダが混在した中で、簡潔な記述方法は無いものか、ということで質問しております。

参考URLを参照してみましたところ、下記に示すfilesetで単一のフォルダのみ指定しての削除のサンプルがありました。

<delete includeEmptyDirs="true">
 <fileset dir="build">
</delete>

今回で言うと下記のソースになるかと思います。

<delete includeEmptyDirs="true">
 <fileset dir="C:\parent\a">
 <fileset dir="C:\parent\b">
 <fileset dir="C:\parent\c">
</delete>

この3回記述するのがどうかな、と思っております。
a、b、cの3つのフォルダとも同じ「C:\parent」の配下だから、重複した記述はしたくないのです。
下記のような記述をしてみたのですがうまくいきませんでした。

<fileset dir="C:\parent" includes="a, b, c"/>

やはり一つずつdeleteタスクやfilesetを記述するしかないのでしょうか。

お礼日時:2010/03/01 07:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!