有人知道如何用NAnt创建递归循环吗?我需要循环遍历所有文件夹并将文件上传到我们的网络服务器。我正在使用这个NAnt ftp任务(http://www.spinthemoose.com/~ftptask),但它似乎没有上传整个目录。它仅在我的put元素中上传所提到的文件。
谢谢,
答案 0 :(得分:12)
Foreach task。您可以找到循环文件夹的示例。
完整示例:
<foreach item="Folder" property="foldername">
<in>
<items>
<include name="YOUR_FOLDER\**" />
</items>
</in>
<do>
<foreach item="File" property="filename" in="${foldername}">
<do>
<echo message="${filename}" />
</do>
</foreach>
</do>
</foreach>
如果您不需要文件夹,即使使用较少的代码也可以满足您的需求:
<foreach item="File" property="filename">
<in>
<items>
<include name="YOUR_FOLDER\**" />
</items>
</in>
<do>
<echo message="${filename}" />
</do>
</foreach>
答案 1 :(得分:2)
我相信这会给你递归的文件夹列表
<?xml version="1.0"?>
<target name="task.recursive">
<foreach item="Folder" in="${folder.current}" property="folder">
<echo message="${folder}" />
<property name="folder.current" value="${folder}" />
<call target="task.recursive" />
</foreach>
</target>
<target name="task.run">
<echo message="${project.folder.root}" level="Info" />
<property name="folder.current" value="${project.folder.root}" />
<call target="task.recursive" />
</target>