#ant #ftp
#ant #ftp
Вопрос:
Как удалить все файлы и папки внутри указанной удаленной папки в Ant?
Я пробовал следующее:
<ftp server="${ftp.host}" userid="${ftp.user}"
password="${ftp.pass}" remotedir="${ftp.remotedir}" action="del">
<fileset>
<include name="**/*"/>
</fileset>
</ftp>
он удаляет все файлы, но не папки.
(если я напишу здесь <включить имя=»*.txt»>, вместо этого все будет работать как ожидалось — удаляются все текстовые файлы, но что, если я захочу удалить все файлы и папки?)
Ответ №1:
Вы должны использовать другую команду: 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», затем с помощью action=»rmdir» …