¿Cómo puedo imprimir un conjunto de archivos en un archivo, un nombre de archivo por línea?

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

  •  12-09-2019
  •  | 
  •  

Pregunta

Tengo un conjunto de archivos poblada y que necesito para imprimir los nombres de archivo que coinciden en un archivo de texto.

He intentado esto:

<fileset id="myfileset" dir="../sounds">
    <include name="*.wav" />
    <include name="*.ogg" />
</fileset>

<property name="sounds" refid="myfileset" />
<echo file="sounds.txt">${sounds}</echo>

que imprime todos los archivos en una sola línea, separados por punto y coma. Es necesario disponer de un archivo por línea. ¿Cómo puedo hacer esto sin tener que recurrir a llamar a los comandos del sistema operativo o escribir código Java?

Actualizar

Ah, debería haber sido más específico - la lista no debe contener directorios. Estoy marcando de ChssPly76 como la respuesta aceptada de todos modos, ya que el href="http://ant.apache.org/manual/Tasks/pathconvert.html" rel="noreferrer"> pathconvert comando era exactamente lo que me faltaba. Para despojar a los directorios y la lista sólo los nombres de archivo, he utilizado el "aplanar" mapeador .

Aquí está el script que terminé con:

<fileset id="sounds_fileset" dir="../sound">
    <include name="*.wav" />
    <include name="*.ogg" />
</fileset>

<pathconvert pathsep="&#xA;" property="sounds" refid="sounds_fileset">
    <mapper type="flatten" />
</pathconvert>

<echo file="sounds.txt">${sounds}</echo>
¿Fue útil?

Solución

Utilice la PathConvert tarea:

<fileset id="myfileset" dir="../sounds">
    <include name="*.wav" />
    <include name="*.ogg" />
</fileset>

<pathconvert pathsep="${line.separator}" property="sounds" refid="myfileset">
    <!-- Add this if you want the path stripped -->
    <mapper>
        <flattenmapper />
    </mapper>
</pathconvert>
<echo file="sounds.txt">${sounds}</echo>

Otros consejos

Desde Ant 1.6 se puede utilizar toString :

<echo file="sounds.txt">${toString:myfileset}</echo>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top