如何将文件集打印到文件,每行一个文件名?

我有一个填充文件集,我需要打印匹配的文件名到一个文本文件。

我试过这个:

<fileset id="myfileset" dir="../sounds"> <include name="*.wav" /> <include name="*.ogg" /> </fileset> <property name="sounds" refid="myfileset" /> <echo file="sounds.txt">${sounds}</echo> 

将所有文件打印在一行上,用分号分隔。 我需要每行有一个文件。 我怎样才能做到这一点,而不诉诸操作系统命令或编写Java代码?

更新

啊,应该是更具体 – 列表不得包含目录。 我把ChssPly76的标记作为接受的答案,因为pathconvert命令正是我所缺less的。 为了去除目录并仅列出文件名,我使用了“扁平”映射器 。

这里是我最后的脚本:

 <fileset id="sounds_fileset" dir="../sound"> <include name="*.wav" /> <include name="*.ogg" /> </fileset> <pathconvert pathsep="
" property="sounds" refid="sounds_fileset"> <mapper type="flatten" /> </pathconvert> <echo file="sounds.txt">${sounds}</echo> 

使用PathConvert任务:

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

从Ant 1.6开始,你可以使用toString :

 <echo file="sounds.txt">${toString:myfileset}</echo>