我正在使用ANT检查两个罐子中的文件集的计数。 我无法检查相同模式的文件是否存在。
例如我有2个文件,如/host/user/dir1/ABC1.txt和/host/user/dir1/ABC2.txt。
现在我要检查模式文件“/ host / user / dir1 / ABC *”是否存在?
我可以使用可用标记检查单个文件/host/user/dir1/ABC1.txt,但无法检查文件中的特定模式。
提前感谢。
对于单个文件,以下工作正常:
<if>
<available file="${client.classes.src.dir}/${class_to_be_search}.class"/>
<then>
<echo> File ${client.classes.src.dir}/${class_to_be_search}.class FOUND in src dir
</echo>
<echo> Update property client.jar.packages.listOfInnerClass</echo>
</then>
<else>
<echo> File ${client.classes.src.dir}/${class_to_be_search}.class NOT FOUND in src dir.
</echo>
</else>
</if>
但我想搜索多个文件: 类似于:$ {dir.structure} / $ {class_to_be_search} $ * .class
答案 0 :(得分:3)
if task不是核心ANT的一部分。
以下示例显示了如何使用ANT condition task完成此操作。您可以在文件集中使用所需的任何模式。目标执行随后取决于如何设置“file.found”属性:
<project name="demo" default="run">
<fileset id="classfiles" dir="build" includes="**/*.class"/>
<condition property="file.found">
<resourcecount refid="classfiles" when="greater" count="0"/>
</condition>
<target name="run" depends="found,notfound"/>
<target name="found" if="file.found">
<echo message="file found"/>
</target>
<target name="notfound" unless="file.found">
<echo message="file not found"/>
</target>
</project>