Comment puis-je faire écho un nom de fichier en utilisant deux fois « FileSet » et « PathConvert »?

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

  •  23-10-2019
  •  | 
  •  

Question

Je cette simple tâche Ant qui répertorie tous les fichiers « .png » dans un dossier:

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

Cette impression

[echo] A.png
[echo] B.png

Mais, ce que je veux est pour les noms de fichiers apparaissent deux fois sur chaque ligne.

[echo] A.png,A.png
[echo] B.png,B.png

Comment puis-je faire?

(Cette question est un suivi de Comment puis-je imprimer un ensemble de fichiers dans un fichier, un nom de fichier par ligne? )

Était-ce utile?

La solution

Vous pouvez utiliser un regexp mappeur (au lieu du Aplatir) que met en œuvre l'aplanissement et de duplication. C'est assez simpliste, mais pourrait le faire:

<mapper type="regexp" from=".*/(.*)" to="\1,\1" />

Il suffira d'ajuster votre séparateur de chemin local.

Mieux cependant, utiliser un chainedmapper à la place du Aplatir:

<chainedmapper>
    <mapper type="flatten" />
    <mapper type="regexp" from="(.*)" to="\1,\1" />
</chainedmapper>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top