通过Ant FTP任务删除所有文件和文件夹

时间:2011-10-13 11:06:25

标签: ant ftp

如何删除Ant中指定的远程文件夹中的所有文件和文件夹?

我尝试了以下内容:

<ftp server="${ftp.host}" userid="${ftp.user}"
             password="${ftp.pass}" remotedir="${ftp.remotedir}" action="del">
    <fileset>
        <include name="**/*"/>
    </fileset>
</ftp>

删除所有文件,但不删除文件夹。 (如果我在这里写&lt; include name =“* .txt”&gt;而不是按预期工作 - 删除所有txt文件,但如果我想删除所有文件和文件夹怎么办?)

1 个答案:

答案 0 :(得分:2)

您应该使用另一个命令:rmdir
此命令不会删除remotedir参数中指定的文件夹 该示例基于ant.apache.org的信息:

  <ftp action="rmdir"
       server="${ftp.host}"
       userid="${ftp.user}"
       password="${ftp.pass}"
       remotedir="${ftp.parentdir_for_remotedir}" >
    <fileset>
      <include name="${ftp.remotedir}/**"/>
    </fileset>
  </ftp>

网站引用:

  

永远不会选择remotedir参数中指定的目录   要删除,所以如果你需要删除它,请在其中指定其父项   remotedir参数并将其包含在模式中,如   “somedir /**".

另外值得注意的是,如果rmdir中指定了空文件夹,则fileset将失败。

来自同一网站:

  

例如,假设您要删除包含的所有内容   / somedir,所以首先用action =“delete”调用任务,然后   with action =“rmdir”......