【发布时间】:2009-07-27 17:43:42
【问题描述】:
有人知道我如何使用 NAnt 创建递归循环吗?我需要遍历所有文件夹并将文件上传到我们的网络服务器。我正在使用这个 NAnt ftp 任务 (http://www.spinthemoose.com/~ftptask),但它似乎没有上传整个目录。它只上传我的 put 元素中提到的文件。
谢谢,
【问题讨论】:
有人知道我如何使用 NAnt 创建递归循环吗?我需要遍历所有文件夹并将文件上传到我们的网络服务器。我正在使用这个 NAnt ftp 任务 (http://www.spinthemoose.com/~ftptask),但它似乎没有上传整个目录。它只上传我的 put 元素中提到的文件。
谢谢,
【问题讨论】:
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>
【讨论】:
我相信这应该给你文件夹的递归列表
<?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>
【讨论】: