我有一个简单的Ant任务,列出文件夹中的所有'.png'文件:
<target name="listimages">
<!-- Assume files a A and B -->
<fileset id="dist.contents" dir="${basedir}">
<include name="**/*.png"/>
</fileset>
<pathconvert pathsep="${line.separator}"
property="prop.dist.contents"
refid="dist.contents">
<mapper type="flatten" />
<map from="${basedir}" to=""/>
</pathconvert>
<echo>${prop.dist.contents}</echo>
</target>
打印
[echo] A.png
[echo] B.png
但是,我想要的是文件名在每一行上显示两次。
[echo] A.png,A.png
[echo] B.png,B.png
我该怎么做?
(这个问题是对How can I print a fileset to a file, one file name per line?)
的跟进答案 0 :(得分:1)
您可以使用实现展平和复制的regexp mapper(而不是展平)。这非常简单,但可能会这样做:
<mapper type="regexp" from=".*/(.*)" to="\1,\1" />
需要调整本地路径分隔符。
但更好的是,使用chainedmapper代替flatten:
<chainedmapper>
<mapper type="flatten" />
<mapper type="regexp" from="(.*)" to="\1,\1" />
</chainedmapper>