Wie kann ich einen Dateinamen zweimal mit 'Dateiset' und 'PathConvert' wiederholen?
Frage
Ich habe diese einfache Ameisenaufgabe, die alle '.png' Dateien in einem Ordner auflistet:
<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>
Dies druckt
[echo] A.png
[echo] B.png
Aber was ich will, ist, dass die Dateinamen erscheinen zweimal auf jeder Zeile.
[echo] A.png,A.png
[echo] B.png,B.png
Wie kann ich das machen?
(Diese Frage ist eine Folge zu Wie kann ich eine Datei mit einer Datei, einem Dateinamen pro Zeile, drucken?)
Lösung
Sie könnten a verwenden Regexp Mapper (anstelle der Abflachung), das die Abflachung und Duplikation implementiert. Dies ist ziemlich simpel, könnte aber:
<mapper type="regexp" from=".*/(.*)" to="\1,\1" />
Müsste ein lokales Pfadabscheider angepasst werden.
Verwenden Sie jedoch einen Kettenmapper anstelle des Abflachters:
<chainedmapper>
<mapper type="flatten" />
<mapper type="regexp" from="(.*)" to="\1,\1" />
</chainedmapper>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow