Comment puis-je faire écho un nom de fichier en utilisant deux fois « FileSet » et « PathConvert »?
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? )
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