2
我在做的是找到一个NAnt文件。该文件可以位于给定文件夹的目录结构中的任何位置。Nant:按模式查找文件
我想这跟楠-的foreach任务(这工作),但我不太相信这一点:
<target name="find-file">
<fail message="Property param.dir must be set" unless="${property::exists('param.dir')}" />
<fail message="Property param.pattern must be set" unless="${property::exists('param.pattern')}" />
<property name="return.file" value="" />
<foreach item="File" property="iterator.file">
<in>
<items>
<include name="${param.dir}\**\${param.pattern}" />
</items>
</in>
<do>
<property name="return.file" value="${iterator.file}" if="${string::get-length(return.file) == 0}" />
</do>
</foreach>
</target>
有没有人知道一个更好的方法吗?如果没有,我怎么能在完成第一个元素后退出foreach循环?
的恶性的contrib功能文件集::对字符串将不工作,除非有一种方法可以动态地在运行时创建的文件集(我不知道这些文件)。我的代码会得到第一个找到的文件,但我的问题是如何终止循环。 – Dennis 2010-11-23 09:24:33
用示例更新。完美的作品。您提出了一种尽早终止循环的方法:我没有看到一个。你还要求更好的方法。这是否是更好的问题值得商榷 - 这当然是一个可行的选择。 – robaker 2010-11-23 11:51:58
如果有多个文件匹配,它不会工作。 – Wernight 2011-10-26 12:27:09