如何使用'fileset'和“ pathoconvert”两次呼应文件名?
题
我有一个简单的蚂蚁任务,该任务列出了一个文件夹中的所有'.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
我怎样才能做到这一点?
(这个问题是跟进 如何将文件集打印到文件,每行一个文件名?)
解决方案
您可以使用 REGEXP映射器 (而不是变平)实现扁平和复制。这很简单,但可能会这样:
<mapper type="regexp" from=".*/(.*)" to="\1,\1" />
需要调整本地路径分离器。
不过,更好的是,请使用链式设备来代替扁平化:
<chainedmapper>
<mapper type="flatten" />
<mapper type="regexp" from="(.*)" to="\1,\1" />
</chainedmapper>
不隶属于 StackOverflow