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

问题描述:

如何删除Ant中指定远程文件夹内的所有文件和文件夹?通过Ant FTP任务删除所有文件和文件夹

我已经试过如下:

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

它删除所有文件,但没有文件夹。如果我在这里编写<包含name =“*。txt”>而不是它按预期工作 - 删除所有txt文件,但如果我想删除所有文件和文件夹怎么办?)

您应该使用另一个命令: 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/**”。

另外值得注意的是,如果有什么,但在规定的fileset空文件夹rmdir将失败。

从同一网站:

作为一个例子,假设你想删除包含到 /somedir一切,所以首先调用与行动=“删除”任务,然后用行动=“命令rmdir” ...

+0

是的,它的工作,thnx! – tsds