¿Cómo puedo hacer eco de un nombre de archivo dos veces usando 'fileset' y 'pathConvert'?

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

  •  23-10-2019
  •  | 
  •  

Pregunta

Tengo esta tarea de hormiga simple que enumera todos los archivos '.png' en una carpeta:

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

Esto imprime

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

Pero, lo que quiero es que aparezcan los nombres de archivo dos veces en cada línea.

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

¿Cómo puedo hacer eso?

(Esta pregunta es un seguimiento de ¿Cómo puedo imprimir un conjunto de archivos en un archivo, un nombre de archivo por línea?)

¿Fue útil?

Solución

Podrías usar un mapeador de regexp (en lugar del aplanado) que implementa el aplanamiento y la duplicación. Esto es bastante simplista, pero podría hacer:

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

Necesitaría ajustar su separador de ruta local.

Sin embargo, mejor, use un mapa de encadenado en lugar de Flatten:

<chainedmapper>
    <mapper type="flatten" />
    <mapper type="regexp" from="(.*)" to="\1,\1" />
</chainedmapper>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top