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