Wie kann ich einen Dateinamen zweimal mit 'Dateiset' und 'PathConvert' wiederholen?

StackOverflow https://stackoverflow.com/questions/2957314

  •  23-10-2019
  •  | 
  •  

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?)

War es hilfreich?

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
scroll top