ファイルが存在するかしないかでの分岐

Antで、ファイルが存在する場合としない場合で分岐したい。
分岐には前に試したAnt-ContribのIfタスクを使えばいいけど、分岐の条件節をどのようにすればよいかが悩ましい。


単一のファイルが存在するかどうかだったら、とりあえずはavailableタスクでできる。


<taskdef resource="net/sf/antcontrib/antlib.xml"
classpath="lib/ant-contrib-0.6.jar" />





あるよ


ないよーん




でも例えば、指定したディレクトリに*.javaがあるかどうかだと、
これといったタスクが見つからない。イメージとしては、filesetで指定された
ファイルの数を見てくれるようなものがほしいんだけど・・・。




というわけで、無理やりlengthでやってみた。


<taskdef resource="net/sf/antcontrib/antlib.xml"
classpath="lib/ant-contrib-0.6.jar" />







あるよ


ないよーん



lengthは、前にこの日記で試したとおり。ファイルを指定した場合は、ファイルの容量って意味になる。
そして、filesetで複数ファイルを指定した場合は、それらのファイル容量の合計となる。
なので、ファイルの容量の合計が0より大きいかどうかで分岐させてみた。


弱点は、所詮はファイルの容量なので、空のファイルがあっても0になってしまうこと。
しゃーないか・・・。




というか、もっといい方法ないっすか?