我有一个填充文件集,我需要打印匹配的文件名到一个文本文件。 我试过这个: <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>
正如我重新安装ant通过scp任务从远程计算机下载文件时不提供“文件集”属性。 它在从本地机器发送文件时起作用,但在远程机器启动时不起作用。 这是来自文档。 所以在远程机器上,我有一些文件夹和每个目录中的文件加载。 我想要下载所有的文件夹和一个指定的文件。 下载所有文件,然后删除不需要的文件将不会是解决scheme,因为有成千上万的文件。 所以。 如何从远程机器的指定目录中下载所有文件夹(只能在没有内容的磁盘上创build),然后从远程机器的每个目录下载一个指定的文件,并使用ant?