2011-10-13 5 views
1

Как удалить все файлы и папки внутри указанной удаленной папки в Ant?Удалить все файлы и папки с помощью задачи Ant FTP

Я попытался следующие:

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

удаляет все файлы, но не папки. (если я пишу здесь < include name = "*. Txt"> вместо этого он работает как ожидалось - удаляет все txt-файлы, но что, если я хочу удалить все файлы и папки?)

ответ

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, поэтому ссылаться на первую задачу с действием = «удалить», то с действием = «Rmdir» ...

+0

Да, это работает, thnx! – tsds

Смежные вопросы