我有一个FileSet
,并且想在PropertyFile
中回显文件名。像这样:
file.name.1=foo.txt
file.name.2=bar.pdf
file.name.3=bob.blah
我已经看到一些解决方案,其中文件名可以在单个Property
中并置,然后在一个步骤中回显。但是由于我使用的是PropertyFile
,所以我需要使用Entry
进行书写。
我当然可以使用Echo
并以模拟属性文件的方式打印每个文件名,但是问题是相同的。如何制作计数器并打印所有名称?
答案 0 :(得分:0)
仅使用Ant无法做到这一点。有一个旧的废弃项目Ant-Contrib正是我需要的。
<target name="print.names" >
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
<var name="counter" value="0"></var>
<for param="current.file">
<fileset dir="path/to/dir"></fileset>
<sequential>
<var name="aux.name" unset="true"></var>
<basename file="@{current.file}" property="aux.name"></basename>
<math operand1="${counter}" operation="+" operand2="1" result="counter" datatype="int"></math>
<echo file="path/to/output/file.txt" append="true" message="file.name.${counter}=${aux.name}${line.separator}"></echo>
</sequential>
</for>
</target>